@growth-labs/cms 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 +165 -0
- package/dist/engine/activity-log.d.ts +17 -0
- package/dist/engine/activity-log.d.ts.map +1 -0
- package/dist/engine/activity-log.js +17 -0
- package/dist/engine/activity-log.js.map +1 -0
- package/dist/engine/ai-prompts.d.ts +57 -0
- package/dist/engine/ai-prompts.d.ts.map +1 -0
- package/dist/engine/ai-prompts.js +90 -0
- package/dist/engine/ai-prompts.js.map +1 -0
- package/dist/engine/ai-writeback.d.ts +36 -0
- package/dist/engine/ai-writeback.d.ts.map +1 -0
- package/dist/engine/ai-writeback.js +45 -0
- package/dist/engine/ai-writeback.js.map +1 -0
- package/dist/engine/api-keys.d.ts +76 -0
- package/dist/engine/api-keys.d.ts.map +1 -0
- package/dist/engine/api-keys.js +165 -0
- package/dist/engine/api-keys.js.map +1 -0
- package/dist/engine/content-insights.d.ts +36 -0
- package/dist/engine/content-insights.d.ts.map +1 -0
- package/dist/engine/content-insights.js +114 -0
- package/dist/engine/content-insights.js.map +1 -0
- package/dist/engine/contributors.d.ts +25 -0
- package/dist/engine/contributors.d.ts.map +1 -0
- package/dist/engine/contributors.js +59 -0
- package/dist/engine/contributors.js.map +1 -0
- package/dist/engine/cron.d.ts +15 -0
- package/dist/engine/cron.d.ts.map +1 -0
- package/dist/engine/cron.js +33 -0
- package/dist/engine/cron.js.map +1 -0
- package/dist/engine/d1.d.ts +16 -0
- package/dist/engine/d1.d.ts.map +1 -0
- package/dist/engine/d1.js +13 -0
- package/dist/engine/d1.js.map +1 -0
- package/dist/engine/foundry-dispatch.d.ts +52 -0
- package/dist/engine/foundry-dispatch.d.ts.map +1 -0
- package/dist/engine/foundry-dispatch.js +290 -0
- package/dist/engine/foundry-dispatch.js.map +1 -0
- package/dist/engine/import-parsers.d.ts +11 -0
- package/dist/engine/import-parsers.d.ts.map +1 -0
- package/dist/engine/import-parsers.js +373 -0
- package/dist/engine/import-parsers.js.map +1 -0
- package/dist/engine/index.d.ts +28 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +57 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/invites.d.ts +78 -0
- package/dist/engine/invites.d.ts.map +1 -0
- package/dist/engine/invites.js +158 -0
- package/dist/engine/invites.js.map +1 -0
- package/dist/engine/members.d.ts +59 -0
- package/dist/engine/members.d.ts.map +1 -0
- package/dist/engine/members.js +124 -0
- package/dist/engine/members.js.map +1 -0
- package/dist/engine/membership-rules.d.ts +25 -0
- package/dist/engine/membership-rules.d.ts.map +1 -0
- package/dist/engine/membership-rules.js +44 -0
- package/dist/engine/membership-rules.js.map +1 -0
- package/dist/engine/og-render.d.ts +40 -0
- package/dist/engine/og-render.d.ts.map +1 -0
- package/dist/engine/og-render.js +26 -0
- package/dist/engine/og-render.js.map +1 -0
- package/dist/engine/publish-guard.d.ts +58 -0
- package/dist/engine/publish-guard.d.ts.map +1 -0
- package/dist/engine/publish-guard.js +80 -0
- package/dist/engine/publish-guard.js.map +1 -0
- package/dist/engine/publisher.d.ts +171 -0
- package/dist/engine/publisher.d.ts.map +1 -0
- package/dist/engine/publisher.js +597 -0
- package/dist/engine/publisher.js.map +1 -0
- package/dist/engine/revisions.d.ts +39 -0
- package/dist/engine/revisions.d.ts.map +1 -0
- package/dist/engine/revisions.js +203 -0
- package/dist/engine/revisions.js.map +1 -0
- package/dist/engine/sanitize.d.ts +52 -0
- package/dist/engine/sanitize.d.ts.map +1 -0
- package/dist/engine/sanitize.js +155 -0
- package/dist/engine/sanitize.js.map +1 -0
- package/dist/engine/seed-membership.d.ts +29 -0
- package/dist/engine/seed-membership.d.ts.map +1 -0
- package/dist/engine/seed-membership.js +65 -0
- package/dist/engine/seed-membership.js.map +1 -0
- package/dist/engine/seo.d.ts +20 -0
- package/dist/engine/seo.d.ts.map +1 -0
- package/dist/engine/seo.js +50 -0
- package/dist/engine/seo.js.map +1 -0
- package/dist/engine/slug-redirects.d.ts +8 -0
- package/dist/engine/slug-redirects.d.ts.map +1 -0
- package/dist/engine/slug-redirects.js +26 -0
- package/dist/engine/slug-redirects.js.map +1 -0
- package/dist/engine/slug.d.ts +6 -0
- package/dist/engine/slug.d.ts.map +1 -0
- package/dist/engine/slug.js +28 -0
- package/dist/engine/slug.js.map +1 -0
- package/dist/engine/soft-delete.d.ts +8 -0
- package/dist/engine/soft-delete.d.ts.map +1 -0
- package/dist/engine/soft-delete.js +28 -0
- package/dist/engine/soft-delete.js.map +1 -0
- package/dist/engine/tags.d.ts +14 -0
- package/dist/engine/tags.d.ts.map +1 -0
- package/dist/engine/tags.js +79 -0
- package/dist/engine/tags.js.map +1 -0
- package/dist/engine/topics.d.ts +10 -0
- package/dist/engine/topics.d.ts.map +1 -0
- package/dist/engine/topics.js +140 -0
- package/dist/engine/topics.js.map +1 -0
- package/dist/engine/url-guard.d.ts +12 -0
- package/dist/engine/url-guard.d.ts.map +1 -0
- package/dist/engine/url-guard.js +129 -0
- package/dist/engine/url-guard.js.map +1 -0
- package/dist/engine/validator/checks/bare-url-not-autolinked.d.ts +20 -0
- package/dist/engine/validator/checks/bare-url-not-autolinked.d.ts.map +1 -0
- package/dist/engine/validator/checks/bare-url-not-autolinked.js +54 -0
- package/dist/engine/validator/checks/bare-url-not-autolinked.js.map +1 -0
- package/dist/engine/validator/checks/broken-footnote-label.d.ts +16 -0
- package/dist/engine/validator/checks/broken-footnote-label.d.ts.map +1 -0
- package/dist/engine/validator/checks/broken-footnote-label.js +17 -0
- package/dist/engine/validator/checks/broken-footnote-label.js.map +1 -0
- package/dist/engine/validator/checks/double-encoded-entities.d.ts +18 -0
- package/dist/engine/validator/checks/double-encoded-entities.d.ts.map +1 -0
- package/dist/engine/validator/checks/double-encoded-entities.js +23 -0
- package/dist/engine/validator/checks/double-encoded-entities.js.map +1 -0
- package/dist/engine/validator/checks/empty-alt-text.d.ts +14 -0
- package/dist/engine/validator/checks/empty-alt-text.d.ts.map +1 -0
- package/dist/engine/validator/checks/empty-alt-text.js +23 -0
- package/dist/engine/validator/checks/empty-alt-text.js.map +1 -0
- package/dist/engine/validator/checks/heading-hierarchy-skip.d.ts +11 -0
- package/dist/engine/validator/checks/heading-hierarchy-skip.d.ts.map +1 -0
- package/dist/engine/validator/checks/heading-hierarchy-skip.js +20 -0
- package/dist/engine/validator/checks/heading-hierarchy-skip.js.map +1 -0
- package/dist/engine/validator/checks/html-comment-leak.d.ts +20 -0
- package/dist/engine/validator/checks/html-comment-leak.d.ts.map +1 -0
- package/dist/engine/validator/checks/html-comment-leak.js +30 -0
- package/dist/engine/validator/checks/html-comment-leak.js.map +1 -0
- package/dist/engine/validator/checks/iframe-missing-dims-and-wrapper.d.ts +12 -0
- package/dist/engine/validator/checks/iframe-missing-dims-and-wrapper.d.ts.map +1 -0
- package/dist/engine/validator/checks/iframe-missing-dims-and-wrapper.js +17 -0
- package/dist/engine/validator/checks/iframe-missing-dims-and-wrapper.js.map +1 -0
- package/dist/engine/validator/checks/invisible-control-chars.d.ts +24 -0
- package/dist/engine/validator/checks/invisible-control-chars.d.ts.map +1 -0
- package/dist/engine/validator/checks/invisible-control-chars.js +30 -0
- package/dist/engine/validator/checks/invisible-control-chars.js.map +1 -0
- package/dist/engine/validator/checks/paywall-marker-leak.d.ts +17 -0
- package/dist/engine/validator/checks/paywall-marker-leak.d.ts.map +1 -0
- package/dist/engine/validator/checks/paywall-marker-leak.js +22 -0
- package/dist/engine/validator/checks/paywall-marker-leak.js.map +1 -0
- package/dist/engine/validator/checks/raw-block-html.d.ts +28 -0
- package/dist/engine/validator/checks/raw-block-html.d.ts.map +1 -0
- package/dist/engine/validator/checks/raw-block-html.js +38 -0
- package/dist/engine/validator/checks/raw-block-html.js.map +1 -0
- package/dist/engine/validator/checks/stale-body-html.d.ts +28 -0
- package/dist/engine/validator/checks/stale-body-html.d.ts.map +1 -0
- package/dist/engine/validator/checks/stale-body-html.js +15 -0
- package/dist/engine/validator/checks/stale-body-html.js.map +1 -0
- package/dist/engine/validator/checks/unresolved-footnote-anchor.d.ts +11 -0
- package/dist/engine/validator/checks/unresolved-footnote-anchor.d.ts.map +1 -0
- package/dist/engine/validator/checks/unresolved-footnote-anchor.js +48 -0
- package/dist/engine/validator/checks/unresolved-footnote-anchor.js.map +1 -0
- package/dist/engine/validator/checks/word-gdocs-paste-artifacts.d.ts +23 -0
- package/dist/engine/validator/checks/word-gdocs-paste-artifacts.d.ts.map +1 -0
- package/dist/engine/validator/checks/word-gdocs-paste-artifacts.js +47 -0
- package/dist/engine/validator/checks/word-gdocs-paste-artifacts.js.map +1 -0
- package/dist/engine/validator/index.d.ts +75 -0
- package/dist/engine/validator/index.d.ts.map +1 -0
- package/dist/engine/validator/index.js +313 -0
- package/dist/engine/validator/index.js.map +1 -0
- package/dist/engine/validator/scan.d.ts +28 -0
- package/dist/engine/validator/scan.d.ts.map +1 -0
- package/dist/engine/validator/scan.js +97 -0
- package/dist/engine/validator/scan.js.map +1 -0
- package/dist/engine/validator/types.d.ts +50 -0
- package/dist/engine/validator/types.d.ts.map +1 -0
- package/dist/engine/validator/types.js +51 -0
- package/dist/engine/validator/types.js.map +1 -0
- package/dist/engine/webhook-signer.d.ts +39 -0
- package/dist/engine/webhook-signer.d.ts.map +1 -0
- package/dist/engine/webhook-signer.js +117 -0
- package/dist/engine/webhook-signer.js.map +1 -0
- package/dist/engine/webhooks.d.ts +75 -0
- package/dist/engine/webhooks.d.ts.map +1 -0
- package/dist/engine/webhooks.js +139 -0
- package/dist/engine/webhooks.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/index.d.ts +6 -0
- package/dist/integration/index.d.ts.map +1 -0
- package/dist/integration/index.js +294 -0
- package/dist/integration/index.js.map +1 -0
- package/dist/integration/options.d.ts +105 -0
- package/dist/integration/options.d.ts.map +1 -0
- package/dist/integration/options.js +25 -0
- package/dist/integration/options.js.map +1 -0
- package/dist/integration/vite-plugin.d.ts +4 -0
- package/dist/integration/vite-plugin.d.ts.map +1 -0
- package/dist/integration/vite-plugin.js +37 -0
- package/dist/integration/vite-plugin.js.map +1 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/null.d.ts +9 -0
- package/dist/providers/null.d.ts.map +1 -0
- package/dist/providers/null.js +144 -0
- package/dist/providers/null.js.map +1 -0
- package/dist/providers/types.d.ts +277 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/routes/ai.d.ts +25 -0
- package/dist/routes/ai.d.ts.map +1 -0
- package/dist/routes/ai.js +381 -0
- package/dist/routes/ai.js.map +1 -0
- package/dist/routes/analytics.d.ts +15 -0
- package/dist/routes/analytics.d.ts.map +1 -0
- package/dist/routes/analytics.js +61 -0
- package/dist/routes/analytics.js.map +1 -0
- package/dist/routes/api-keys.d.ts +13 -0
- package/dist/routes/api-keys.d.ts.map +1 -0
- package/dist/routes/api-keys.js +109 -0
- package/dist/routes/api-keys.js.map +1 -0
- package/dist/routes/authors.d.ts +19 -0
- package/dist/routes/authors.d.ts.map +1 -0
- package/dist/routes/authors.js +202 -0
- package/dist/routes/authors.js.map +1 -0
- package/dist/routes/authz-matrix.d.ts +78 -0
- package/dist/routes/authz-matrix.d.ts.map +1 -0
- package/dist/routes/authz-matrix.js +170 -0
- package/dist/routes/authz-matrix.js.map +1 -0
- package/dist/routes/calendar.d.ts +19 -0
- package/dist/routes/calendar.d.ts.map +1 -0
- package/dist/routes/calendar.js +89 -0
- package/dist/routes/calendar.js.map +1 -0
- package/dist/routes/config.d.ts +70 -0
- package/dist/routes/config.d.ts.map +1 -0
- package/dist/routes/config.js +23 -0
- package/dist/routes/config.js.map +1 -0
- package/dist/routes/content-insights.d.ts +18 -0
- package/dist/routes/content-insights.d.ts.map +1 -0
- package/dist/routes/content-insights.js +137 -0
- package/dist/routes/content-insights.js.map +1 -0
- package/dist/routes/content.d.ts +145 -0
- package/dist/routes/content.d.ts.map +1 -0
- package/dist/routes/content.js +1374 -0
- package/dist/routes/content.js.map +1 -0
- package/dist/routes/context.d.ts +104 -0
- package/dist/routes/context.d.ts.map +1 -0
- package/dist/routes/context.js +26 -0
- package/dist/routes/context.js.map +1 -0
- package/dist/routes/cron.d.ts +8 -0
- package/dist/routes/cron.d.ts.map +1 -0
- package/dist/routes/cron.js +20 -0
- package/dist/routes/cron.js.map +1 -0
- package/dist/routes/dashboard.d.ts +12 -0
- package/dist/routes/dashboard.d.ts.map +1 -0
- package/dist/routes/dashboard.js +113 -0
- package/dist/routes/dashboard.js.map +1 -0
- package/dist/routes/imports.d.ts +10 -0
- package/dist/routes/imports.d.ts.map +1 -0
- package/dist/routes/imports.js +149 -0
- package/dist/routes/imports.js.map +1 -0
- package/dist/routes/index.d.ts +75 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +141 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/media-lib.d.ts +75 -0
- package/dist/routes/media-lib.d.ts.map +1 -0
- package/dist/routes/media-lib.js +305 -0
- package/dist/routes/media-lib.js.map +1 -0
- package/dist/routes/media.d.ts +32 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +756 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/preview.d.ts +19 -0
- package/dist/routes/preview.d.ts.map +1 -0
- package/dist/routes/preview.js +150 -0
- package/dist/routes/preview.js.map +1 -0
- package/dist/routes/rbac-invites.d.ts +31 -0
- package/dist/routes/rbac-invites.d.ts.map +1 -0
- package/dist/routes/rbac-invites.js +174 -0
- package/dist/routes/rbac-invites.js.map +1 -0
- package/dist/routes/rbac.d.ts +12 -0
- package/dist/routes/rbac.d.ts.map +1 -0
- package/dist/routes/rbac.js +126 -0
- package/dist/routes/rbac.js.map +1 -0
- package/dist/routes/shell.d.ts +22 -0
- package/dist/routes/shell.d.ts.map +1 -0
- package/dist/routes/shell.js +123 -0
- package/dist/routes/shell.js.map +1 -0
- package/dist/routes/subscriptions.d.ts +21 -0
- package/dist/routes/subscriptions.d.ts.map +1 -0
- package/dist/routes/subscriptions.js +127 -0
- package/dist/routes/subscriptions.js.map +1 -0
- package/dist/routes/tags.d.ts +23 -0
- package/dist/routes/tags.d.ts.map +1 -0
- package/dist/routes/tags.js +68 -0
- package/dist/routes/tags.js.map +1 -0
- package/dist/routes/topics.d.ts +12 -0
- package/dist/routes/topics.d.ts.map +1 -0
- package/dist/routes/topics.js +49 -0
- package/dist/routes/topics.js.map +1 -0
- package/dist/routes/webhooks.d.ts +31 -0
- package/dist/routes/webhooks.d.ts.map +1 -0
- package/dist/routes/webhooks.js +173 -0
- package/dist/routes/webhooks.js.map +1 -0
- package/dist/schema/index.d.ts +4 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/insights-ingest.d.ts +959 -0
- package/dist/schema/insights-ingest.d.ts.map +1 -0
- package/dist/schema/insights-ingest.js +112 -0
- package/dist/schema/insights-ingest.js.map +1 -0
- package/dist/schema/migrations.d.ts +63 -0
- package/dist/schema/migrations.d.ts.map +1 -0
- package/dist/schema/migrations.js +589 -0
- package/dist/schema/migrations.js.map +1 -0
- package/dist/schema/tables.d.ts +11 -0
- package/dist/schema/tables.d.ts.map +1 -0
- package/dist/schema/tables.js +56 -0
- package/dist/schema/tables.js.map +1 -0
- package/dist/schema/types.d.ts +476 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +37 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/ui/api/_authz.d.ts +6 -0
- package/dist/ui/api/_authz.d.ts.map +1 -0
- package/dist/ui/api/_authz.js +74 -0
- package/dist/ui/api/_authz.js.map +1 -0
- package/dist/ui/api/_content-config.d.ts +22 -0
- package/dist/ui/api/_content-config.d.ts.map +1 -0
- package/dist/ui/api/_content-config.js +50 -0
- package/dist/ui/api/_content-config.js.map +1 -0
- package/dist/ui/api/activity.d.ts +3 -0
- package/dist/ui/api/activity.d.ts.map +1 -0
- package/dist/ui/api/activity.js +28 -0
- package/dist/ui/api/activity.js.map +1 -0
- package/dist/ui/api/analytics.d.ts +3 -0
- package/dist/ui/api/analytics.d.ts.map +1 -0
- package/dist/ui/api/analytics.js +36 -0
- package/dist/ui/api/analytics.js.map +1 -0
- package/dist/ui/api/authors/[id].d.ts +4 -0
- package/dist/ui/api/authors/[id].d.ts.map +1 -0
- package/dist/ui/api/authors/[id].js +17 -0
- package/dist/ui/api/authors/[id].js.map +1 -0
- package/dist/ui/api/authors.d.ts +4 -0
- package/dist/ui/api/authors.d.ts.map +1 -0
- package/dist/ui/api/authors.js +12 -0
- package/dist/ui/api/authors.js.map +1 -0
- package/dist/ui/api/calendar.d.ts +3 -0
- package/dist/ui/api/calendar.d.ts.map +1 -0
- package/dist/ui/api/calendar.js +16 -0
- package/dist/ui/api/calendar.js.map +1 -0
- package/dist/ui/api/content/[id]/ai/headlines.d.ts +3 -0
- package/dist/ui/api/content/[id]/ai/headlines.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/ai/headlines.js +7 -0
- package/dist/ui/api/content/[id]/ai/headlines.js.map +1 -0
- package/dist/ui/api/content/[id]/ai/meta-description.d.ts +3 -0
- package/dist/ui/api/content/[id]/ai/meta-description.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/ai/meta-description.js +6 -0
- package/dist/ui/api/content/[id]/ai/meta-description.js.map +1 -0
- package/dist/ui/api/content/[id]/ai/og-image.d.ts +3 -0
- package/dist/ui/api/content/[id]/ai/og-image.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/ai/og-image.js +7 -0
- package/dist/ui/api/content/[id]/ai/og-image.js.map +1 -0
- package/dist/ui/api/content/[id]/ai/proofread.d.ts +3 -0
- package/dist/ui/api/content/[id]/ai/proofread.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/ai/proofread.js +7 -0
- package/dist/ui/api/content/[id]/ai/proofread.js.map +1 -0
- package/dist/ui/api/content/[id]/ai/takeaways.d.ts +3 -0
- package/dist/ui/api/content/[id]/ai/takeaways.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/ai/takeaways.js +6 -0
- package/dist/ui/api/content/[id]/ai/takeaways.js.map +1 -0
- package/dist/ui/api/content/[id]/contributors.d.ts +4 -0
- package/dist/ui/api/content/[id]/contributors.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/contributors.js +8 -0
- package/dist/ui/api/content/[id]/contributors.js.map +1 -0
- package/dist/ui/api/content/[id]/preview-token.d.ts +3 -0
- package/dist/ui/api/content/[id]/preview-token.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/preview-token.js +16 -0
- package/dist/ui/api/content/[id]/preview-token.js.map +1 -0
- package/dist/ui/api/content/[id]/revisions/[rev]/restore.d.ts +3 -0
- package/dist/ui/api/content/[id]/revisions/[rev]/restore.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/revisions/[rev]/restore.js +7 -0
- package/dist/ui/api/content/[id]/revisions/[rev]/restore.js.map +1 -0
- package/dist/ui/api/content/[id]/revisions/[rev].d.ts +3 -0
- package/dist/ui/api/content/[id]/revisions/[rev].d.ts.map +1 -0
- package/dist/ui/api/content/[id]/revisions/[rev].js +6 -0
- package/dist/ui/api/content/[id]/revisions/[rev].js.map +1 -0
- package/dist/ui/api/content/[id]/revisions.d.ts +3 -0
- package/dist/ui/api/content/[id]/revisions.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/revisions.js +6 -0
- package/dist/ui/api/content/[id]/revisions.js.map +1 -0
- package/dist/ui/api/content/[id]/seo-score.d.ts +3 -0
- package/dist/ui/api/content/[id]/seo-score.d.ts.map +1 -0
- package/dist/ui/api/content/[id]/seo-score.js +7 -0
- package/dist/ui/api/content/[id]/seo-score.js.map +1 -0
- package/dist/ui/api/content/[id].d.ts +5 -0
- package/dist/ui/api/content/[id].d.ts.map +1 -0
- package/dist/ui/api/content/[id].js +17 -0
- package/dist/ui/api/content/[id].js.map +1 -0
- package/dist/ui/api/content/bulk.d.ts +3 -0
- package/dist/ui/api/content/bulk.d.ts.map +1 -0
- package/dist/ui/api/content/bulk.js +7 -0
- package/dist/ui/api/content/bulk.js.map +1 -0
- package/dist/ui/api/content/counts.d.ts +3 -0
- package/dist/ui/api/content/counts.d.ts.map +1 -0
- package/dist/ui/api/content/counts.js +8 -0
- package/dist/ui/api/content/counts.js.map +1 -0
- package/dist/ui/api/content/foundry-callback.d.ts +3 -0
- package/dist/ui/api/content/foundry-callback.d.ts.map +1 -0
- package/dist/ui/api/content/foundry-callback.js +8 -0
- package/dist/ui/api/content/foundry-callback.js.map +1 -0
- package/dist/ui/api/content/import/confirm.d.ts +3 -0
- package/dist/ui/api/content/import/confirm.d.ts.map +1 -0
- package/dist/ui/api/content/import/confirm.js +11 -0
- package/dist/ui/api/content/import/confirm.js.map +1 -0
- package/dist/ui/api/content/import/parse.d.ts +3 -0
- package/dist/ui/api/content/import/parse.d.ts.map +1 -0
- package/dist/ui/api/content/import/parse.js +11 -0
- package/dist/ui/api/content/import/parse.js.map +1 -0
- package/dist/ui/api/content/insights-ingest.d.ts +3 -0
- package/dist/ui/api/content/insights-ingest.d.ts.map +1 -0
- package/dist/ui/api/content/insights-ingest.js +15 -0
- package/dist/ui/api/content/insights-ingest.js.map +1 -0
- package/dist/ui/api/content-insights/dismiss.d.ts +3 -0
- package/dist/ui/api/content-insights/dismiss.d.ts.map +1 -0
- package/dist/ui/api/content-insights/dismiss.js +16 -0
- package/dist/ui/api/content-insights/dismiss.js.map +1 -0
- package/dist/ui/api/content-insights/index.d.ts +3 -0
- package/dist/ui/api/content-insights/index.d.ts.map +1 -0
- package/dist/ui/api/content-insights/index.js +12 -0
- package/dist/ui/api/content-insights/index.js.map +1 -0
- package/dist/ui/api/content-insights/undismiss.d.ts +3 -0
- package/dist/ui/api/content-insights/undismiss.d.ts.map +1 -0
- package/dist/ui/api/content-insights/undismiss.js +16 -0
- package/dist/ui/api/content-insights/undismiss.js.map +1 -0
- package/dist/ui/api/content.d.ts +4 -0
- package/dist/ui/api/content.d.ts.map +1 -0
- package/dist/ui/api/content.js +16 -0
- package/dist/ui/api/content.js.map +1 -0
- package/dist/ui/api/dashboard.d.ts +3 -0
- package/dist/ui/api/dashboard.d.ts.map +1 -0
- package/dist/ui/api/dashboard.js +22 -0
- package/dist/ui/api/dashboard.js.map +1 -0
- package/dist/ui/api/me.d.ts +3 -0
- package/dist/ui/api/me.d.ts.map +1 -0
- package/dist/ui/api/me.js +18 -0
- package/dist/ui/api/me.js.map +1 -0
- package/dist/ui/api/media/[id].d.ts +3 -0
- package/dist/ui/api/media/[id].d.ts.map +1 -0
- package/dist/ui/api/media/[id].js +17 -0
- package/dist/ui/api/media/[id].js.map +1 -0
- package/dist/ui/api/media/images.d.ts +3 -0
- package/dist/ui/api/media/images.d.ts.map +1 -0
- package/dist/ui/api/media/images.js +6 -0
- package/dist/ui/api/media/images.js.map +1 -0
- package/dist/ui/api/media/library/[id].d.ts +3 -0
- package/dist/ui/api/media/library/[id].d.ts.map +1 -0
- package/dist/ui/api/media/library/[id].js +6 -0
- package/dist/ui/api/media/library/[id].js.map +1 -0
- package/dist/ui/api/media/library.d.ts +3 -0
- package/dist/ui/api/media/library.d.ts.map +1 -0
- package/dist/ui/api/media/library.js +17 -0
- package/dist/ui/api/media/library.js.map +1 -0
- package/dist/ui/api/media/podcast/abort.d.ts +3 -0
- package/dist/ui/api/media/podcast/abort.d.ts.map +1 -0
- package/dist/ui/api/media/podcast/abort.js +4 -0
- package/dist/ui/api/media/podcast/abort.js.map +1 -0
- package/dist/ui/api/media/podcast/complete.d.ts +3 -0
- package/dist/ui/api/media/podcast/complete.d.ts.map +1 -0
- package/dist/ui/api/media/podcast/complete.js +4 -0
- package/dist/ui/api/media/podcast/complete.js.map +1 -0
- package/dist/ui/api/media/podcast/init.d.ts +3 -0
- package/dist/ui/api/media/podcast/init.d.ts.map +1 -0
- package/dist/ui/api/media/podcast/init.js +4 -0
- package/dist/ui/api/media/podcast/init.js.map +1 -0
- package/dist/ui/api/media/podcast/part.d.ts +3 -0
- package/dist/ui/api/media/podcast/part.d.ts.map +1 -0
- package/dist/ui/api/media/podcast/part.js +4 -0
- package/dist/ui/api/media/podcast/part.js.map +1 -0
- package/dist/ui/api/media/podcast.d.ts +3 -0
- package/dist/ui/api/media/podcast.d.ts.map +1 -0
- package/dist/ui/api/media/podcast.js +6 -0
- package/dist/ui/api/media/podcast.js.map +1 -0
- package/dist/ui/api/media/videos/abort.d.ts +3 -0
- package/dist/ui/api/media/videos/abort.d.ts.map +1 -0
- package/dist/ui/api/media/videos/abort.js +6 -0
- package/dist/ui/api/media/videos/abort.js.map +1 -0
- package/dist/ui/api/media/videos/complete.d.ts +3 -0
- package/dist/ui/api/media/videos/complete.d.ts.map +1 -0
- package/dist/ui/api/media/videos/complete.js +6 -0
- package/dist/ui/api/media/videos/complete.js.map +1 -0
- package/dist/ui/api/media/videos/init.d.ts +3 -0
- package/dist/ui/api/media/videos/init.d.ts.map +1 -0
- package/dist/ui/api/media/videos/init.js +6 -0
- package/dist/ui/api/media/videos/init.js.map +1 -0
- package/dist/ui/api/media/videos/part.d.ts +3 -0
- package/dist/ui/api/media/videos/part.d.ts.map +1 -0
- package/dist/ui/api/media/videos/part.js +6 -0
- package/dist/ui/api/media/videos/part.js.map +1 -0
- package/dist/ui/api/notifications.d.ts +4 -0
- package/dist/ui/api/notifications.d.ts.map +1 -0
- package/dist/ui/api/notifications.js +20 -0
- package/dist/ui/api/notifications.js.map +1 -0
- package/dist/ui/api/search.d.ts +3 -0
- package/dist/ui/api/search.d.ts.map +1 -0
- package/dist/ui/api/search.js +18 -0
- package/dist/ui/api/search.js.map +1 -0
- package/dist/ui/api/settings/api-keys/[id].d.ts +3 -0
- package/dist/ui/api/settings/api-keys/[id].d.ts.map +1 -0
- package/dist/ui/api/settings/api-keys/[id].js +22 -0
- package/dist/ui/api/settings/api-keys/[id].js.map +1 -0
- package/dist/ui/api/settings/api-keys.d.ts +4 -0
- package/dist/ui/api/settings/api-keys.d.ts.map +1 -0
- package/dist/ui/api/settings/api-keys.js +19 -0
- package/dist/ui/api/settings/api-keys.js.map +1 -0
- package/dist/ui/api/settings/domains.d.ts +3 -0
- package/dist/ui/api/settings/domains.d.ts.map +1 -0
- package/dist/ui/api/settings/domains.js +32 -0
- package/dist/ui/api/settings/domains.js.map +1 -0
- package/dist/ui/api/settings/integrations.d.ts +3 -0
- package/dist/ui/api/settings/integrations.d.ts.map +1 -0
- package/dist/ui/api/settings/integrations.js +32 -0
- package/dist/ui/api/settings/integrations.js.map +1 -0
- package/dist/ui/api/settings/members/[userId].d.ts +4 -0
- package/dist/ui/api/settings/members/[userId].d.ts.map +1 -0
- package/dist/ui/api/settings/members/[userId].js +26 -0
- package/dist/ui/api/settings/members/[userId].js.map +1 -0
- package/dist/ui/api/settings/members/invite.d.ts +3 -0
- package/dist/ui/api/settings/members/invite.d.ts.map +1 -0
- package/dist/ui/api/settings/members/invite.js +21 -0
- package/dist/ui/api/settings/members/invite.js.map +1 -0
- package/dist/ui/api/settings/members.d.ts +3 -0
- package/dist/ui/api/settings/members.d.ts.map +1 -0
- package/dist/ui/api/settings/members.js +17 -0
- package/dist/ui/api/settings/members.js.map +1 -0
- package/dist/ui/api/settings/webhooks/[id]/test.d.ts +3 -0
- package/dist/ui/api/settings/webhooks/[id]/test.d.ts.map +1 -0
- package/dist/ui/api/settings/webhooks/[id]/test.js +24 -0
- package/dist/ui/api/settings/webhooks/[id]/test.js.map +1 -0
- package/dist/ui/api/settings/webhooks/[id].d.ts +3 -0
- package/dist/ui/api/settings/webhooks/[id].d.ts.map +1 -0
- package/dist/ui/api/settings/webhooks/[id].js +23 -0
- package/dist/ui/api/settings/webhooks/[id].js.map +1 -0
- package/dist/ui/api/settings/webhooks.d.ts +4 -0
- package/dist/ui/api/settings/webhooks.d.ts.map +1 -0
- package/dist/ui/api/settings/webhooks.js +21 -0
- package/dist/ui/api/settings/webhooks.js.map +1 -0
- package/dist/ui/api/subscriptions.d.ts +4 -0
- package/dist/ui/api/subscriptions.d.ts.map +1 -0
- package/dist/ui/api/subscriptions.js +47 -0
- package/dist/ui/api/subscriptions.js.map +1 -0
- package/dist/ui/api/tags/[id].d.ts +4 -0
- package/dist/ui/api/tags/[id].d.ts.map +1 -0
- package/dist/ui/api/tags/[id].js +18 -0
- package/dist/ui/api/tags/[id].js.map +1 -0
- package/dist/ui/api/tags/index.d.ts +4 -0
- package/dist/ui/api/tags/index.d.ts.map +1 -0
- package/dist/ui/api/tags/index.js +13 -0
- package/dist/ui/api/tags/index.js.map +1 -0
- package/dist/ui/api/topics/[id].d.ts +3 -0
- package/dist/ui/api/topics/[id].d.ts.map +1 -0
- package/dist/ui/api/topics/[id].js +15 -0
- package/dist/ui/api/topics/[id].js.map +1 -0
- package/dist/ui/api/topics/index.d.ts +4 -0
- package/dist/ui/api/topics/index.d.ts.map +1 -0
- package/dist/ui/api/topics/index.js +12 -0
- package/dist/ui/api/topics/index.js.map +1 -0
- package/dist/ui/api/workspace-settings.d.ts +4 -0
- package/dist/ui/api/workspace-settings.d.ts.map +1 -0
- package/dist/ui/api/workspace-settings.js +20 -0
- package/dist/ui/api/workspace-settings.js.map +1 -0
- package/dist/ui/client/boot-state.d.ts +15 -0
- package/dist/ui/client/boot-state.d.ts.map +1 -0
- package/dist/ui/client/boot-state.js +36 -0
- package/dist/ui/client/boot-state.js.map +1 -0
- package/dist/ui/client/mount.d.ts +3 -0
- package/dist/ui/client/mount.d.ts.map +1 -0
- package/dist/ui/client/mount.js +37 -0
- package/dist/ui/client/mount.js.map +1 -0
- package/dist/ui/commands.d.ts +23 -0
- package/dist/ui/commands.d.ts.map +1 -0
- package/dist/ui/commands.js +48 -0
- package/dist/ui/commands.js.map +1 -0
- package/dist/ui/components/CmsApp.d.ts +16 -0
- package/dist/ui/components/CmsApp.d.ts.map +1 -0
- package/dist/ui/components/CmsApp.js +74 -0
- package/dist/ui/components/CmsApp.js.map +1 -0
- package/dist/ui/components/CommandPalette.d.ts +7 -0
- package/dist/ui/components/CommandPalette.d.ts.map +1 -0
- package/dist/ui/components/CommandPalette.js +61 -0
- package/dist/ui/components/CommandPalette.js.map +1 -0
- package/dist/ui/components/NoAccessScreen.d.ts +2 -0
- package/dist/ui/components/NoAccessScreen.d.ts.map +1 -0
- package/dist/ui/components/NoAccessScreen.js +42 -0
- package/dist/ui/components/NoAccessScreen.js.map +1 -0
- package/dist/ui/components/ShareModal.d.ts +27 -0
- package/dist/ui/components/ShareModal.d.ts.map +1 -0
- package/dist/ui/components/ShareModal.js +208 -0
- package/dist/ui/components/ShareModal.js.map +1 -0
- package/dist/ui/components/SharePickers.d.ts +39 -0
- package/dist/ui/components/SharePickers.d.ts.map +1 -0
- package/dist/ui/components/SharePickers.js +352 -0
- package/dist/ui/components/SharePickers.js.map +1 -0
- package/dist/ui/components/ShareStatsPanel.d.ts +22 -0
- package/dist/ui/components/ShareStatsPanel.d.ts.map +1 -0
- package/dist/ui/components/ShareStatsPanel.js +317 -0
- package/dist/ui/components/ShareStatsPanel.js.map +1 -0
- package/dist/ui/components/Sidebar.d.ts +7 -0
- package/dist/ui/components/Sidebar.d.ts.map +1 -0
- package/dist/ui/components/Sidebar.js +20 -0
- package/dist/ui/components/Sidebar.js.map +1 -0
- package/dist/ui/components/SiteSwitcher.d.ts +4 -0
- package/dist/ui/components/SiteSwitcher.d.ts.map +1 -0
- package/dist/ui/components/SiteSwitcher.js +35 -0
- package/dist/ui/components/SiteSwitcher.js.map +1 -0
- package/dist/ui/components/Topbar.d.ts +9 -0
- package/dist/ui/components/Topbar.d.ts.map +1 -0
- package/dist/ui/components/Topbar.js +20 -0
- package/dist/ui/components/Topbar.js.map +1 -0
- package/dist/ui/editor/AiAssistPanel.d.ts +8 -0
- package/dist/ui/editor/AiAssistPanel.d.ts.map +1 -0
- package/dist/ui/editor/AiAssistPanel.js +221 -0
- package/dist/ui/editor/AiAssistPanel.js.map +1 -0
- package/dist/ui/editor/ContentForm.d.ts +46 -0
- package/dist/ui/editor/ContentForm.d.ts.map +1 -0
- package/dist/ui/editor/ContentForm.js +821 -0
- package/dist/ui/editor/ContentForm.js.map +1 -0
- package/dist/ui/editor/Rte.d.ts +16 -0
- package/dist/ui/editor/Rte.d.ts.map +1 -0
- package/dist/ui/editor/Rte.js +272 -0
- package/dist/ui/editor/Rte.js.map +1 -0
- package/dist/ui/editor/ai-assist.d.ts +43 -0
- package/dist/ui/editor/ai-assist.d.ts.map +1 -0
- package/dist/ui/editor/ai-assist.js +114 -0
- package/dist/ui/editor/ai-assist.js.map +1 -0
- package/dist/ui/editor/autosave.d.ts +18 -0
- package/dist/ui/editor/autosave.d.ts.map +1 -0
- package/dist/ui/editor/autosave.js +23 -0
- package/dist/ui/editor/autosave.js.map +1 -0
- package/dist/ui/editor/content-payload.d.ts +19 -0
- package/dist/ui/editor/content-payload.d.ts.map +1 -0
- package/dist/ui/editor/content-payload.js +97 -0
- package/dist/ui/editor/content-payload.js.map +1 -0
- package/dist/ui/editor/editor-media-upload.d.ts +6 -0
- package/dist/ui/editor/editor-media-upload.d.ts.map +1 -0
- package/dist/ui/editor/editor-media-upload.js +20 -0
- package/dist/ui/editor/editor-media-upload.js.map +1 -0
- package/dist/ui/editor/serialize.d.ts +6 -0
- package/dist/ui/editor/serialize.d.ts.map +1 -0
- package/dist/ui/editor/serialize.js +479 -0
- package/dist/ui/editor/serialize.js.map +1 -0
- package/dist/ui/editor/tweet-embed.d.ts +4 -0
- package/dist/ui/editor/tweet-embed.d.ts.map +1 -0
- package/dist/ui/editor/tweet-embed.js +49 -0
- package/dist/ui/editor/tweet-embed.js.map +1 -0
- package/dist/ui/hash-router.d.ts +5 -0
- package/dist/ui/hash-router.d.ts.map +1 -0
- package/dist/ui/hash-router.js +25 -0
- package/dist/ui/hash-router.js.map +1 -0
- package/dist/ui/icons.d.ts +32 -0
- package/dist/ui/icons.d.ts.map +1 -0
- package/dist/ui/icons.js +86 -0
- package/dist/ui/icons.js.map +1 -0
- package/dist/ui/inspector/Field.d.ts +12 -0
- package/dist/ui/inspector/Field.d.ts.map +1 -0
- package/dist/ui/inspector/Field.js +8 -0
- package/dist/ui/inspector/Field.js.map +1 -0
- package/dist/ui/inspector/FoundryTab.d.ts +9 -0
- package/dist/ui/inspector/FoundryTab.d.ts.map +1 -0
- package/dist/ui/inspector/FoundryTab.js +362 -0
- package/dist/ui/inspector/FoundryTab.js.map +1 -0
- package/dist/ui/inspector/HistoryTab.d.ts +7 -0
- package/dist/ui/inspector/HistoryTab.d.ts.map +1 -0
- package/dist/ui/inspector/HistoryTab.js +289 -0
- package/dist/ui/inspector/HistoryTab.js.map +1 -0
- package/dist/ui/inspector/Inspector.d.ts +13 -0
- package/dist/ui/inspector/Inspector.d.ts.map +1 -0
- package/dist/ui/inspector/Inspector.js +163 -0
- package/dist/ui/inspector/Inspector.js.map +1 -0
- package/dist/ui/inspector/OrganizeTab.d.ts +15 -0
- package/dist/ui/inspector/OrganizeTab.d.ts.map +1 -0
- package/dist/ui/inspector/OrganizeTab.js +319 -0
- package/dist/ui/inspector/OrganizeTab.js.map +1 -0
- package/dist/ui/inspector/PublishTab.d.ts +18 -0
- package/dist/ui/inspector/PublishTab.d.ts.map +1 -0
- package/dist/ui/inspector/PublishTab.js +339 -0
- package/dist/ui/inspector/PublishTab.js.map +1 -0
- package/dist/ui/inspector/Section.d.ts +10 -0
- package/dist/ui/inspector/Section.d.ts.map +1 -0
- package/dist/ui/inspector/Section.js +40 -0
- package/dist/ui/inspector/Section.js.map +1 -0
- package/dist/ui/inspector/SeoTab.d.ts +19 -0
- package/dist/ui/inspector/SeoTab.d.ts.map +1 -0
- package/dist/ui/inspector/SeoTab.js +328 -0
- package/dist/ui/inspector/SeoTab.js.map +1 -0
- package/dist/ui/inspector/foundry-stages.d.ts +36 -0
- package/dist/ui/inspector/foundry-stages.d.ts.map +1 -0
- package/dist/ui/inspector/foundry-stages.js +101 -0
- package/dist/ui/inspector/foundry-stages.js.map +1 -0
- package/dist/ui/inspector/inspector-data.d.ts +80 -0
- package/dist/ui/inspector/inspector-data.d.ts.map +1 -0
- package/dist/ui/inspector/inspector-data.js +172 -0
- package/dist/ui/inspector/inspector-data.js.map +1 -0
- package/dist/ui/inspector/organize-data.d.ts +23 -0
- package/dist/ui/inspector/organize-data.d.ts.map +1 -0
- package/dist/ui/inspector/organize-data.js +28 -0
- package/dist/ui/inspector/organize-data.js.map +1 -0
- package/dist/ui/inspector/revision-diff.d.ts +49 -0
- package/dist/ui/inspector/revision-diff.d.ts.map +1 -0
- package/dist/ui/inspector/revision-diff.js +166 -0
- package/dist/ui/inspector/revision-diff.js.map +1 -0
- package/dist/ui/inspector/seo-helpers.d.ts +37 -0
- package/dist/ui/inspector/seo-helpers.d.ts.map +1 -0
- package/dist/ui/inspector/seo-helpers.js +37 -0
- package/dist/ui/inspector/seo-helpers.js.map +1 -0
- package/dist/ui/inspector/tab-visibility.d.ts +14 -0
- package/dist/ui/inspector/tab-visibility.d.ts.map +1 -0
- package/dist/ui/inspector/tab-visibility.js +28 -0
- package/dist/ui/inspector/tab-visibility.js.map +1 -0
- package/dist/ui/nav.d.ts +16 -0
- package/dist/ui/nav.d.ts.map +1 -0
- package/dist/ui/nav.js +33 -0
- package/dist/ui/nav.js.map +1 -0
- package/dist/ui/pages/admin.astro +32 -0
- package/dist/ui/preview/draft-page.d.ts +37 -0
- package/dist/ui/preview/draft-page.d.ts.map +1 -0
- package/dist/ui/preview/draft-page.js +212 -0
- package/dist/ui/preview/draft-page.js.map +1 -0
- package/dist/ui/preview/preview-layout.d.ts +23 -0
- package/dist/ui/preview/preview-layout.d.ts.map +1 -0
- package/dist/ui/preview/preview-layout.js +30 -0
- package/dist/ui/preview/preview-layout.js.map +1 -0
- package/dist/ui/screens/AnalyticsScreen.d.ts +2 -0
- package/dist/ui/screens/AnalyticsScreen.d.ts.map +1 -0
- package/dist/ui/screens/AnalyticsScreen.js +408 -0
- package/dist/ui/screens/AnalyticsScreen.js.map +1 -0
- package/dist/ui/screens/AuthorsScreen.d.ts +2 -0
- package/dist/ui/screens/AuthorsScreen.d.ts.map +1 -0
- package/dist/ui/screens/AuthorsScreen.js +225 -0
- package/dist/ui/screens/AuthorsScreen.js.map +1 -0
- package/dist/ui/screens/CalendarScreen.d.ts +6 -0
- package/dist/ui/screens/CalendarScreen.d.ts.map +1 -0
- package/dist/ui/screens/CalendarScreen.js +327 -0
- package/dist/ui/screens/CalendarScreen.js.map +1 -0
- package/dist/ui/screens/ContentInsightsScreen.d.ts +2 -0
- package/dist/ui/screens/ContentInsightsScreen.d.ts.map +1 -0
- package/dist/ui/screens/ContentInsightsScreen.js +129 -0
- package/dist/ui/screens/ContentInsightsScreen.js.map +1 -0
- package/dist/ui/screens/ContentRoute.d.ts +2 -0
- package/dist/ui/screens/ContentRoute.d.ts.map +1 -0
- package/dist/ui/screens/ContentRoute.js +32 -0
- package/dist/ui/screens/ContentRoute.js.map +1 -0
- package/dist/ui/screens/DashboardScreen.d.ts +6 -0
- package/dist/ui/screens/DashboardScreen.d.ts.map +1 -0
- package/dist/ui/screens/DashboardScreen.js +273 -0
- package/dist/ui/screens/DashboardScreen.js.map +1 -0
- package/dist/ui/screens/EditorScreen.d.ts +7 -0
- package/dist/ui/screens/EditorScreen.d.ts.map +1 -0
- package/dist/ui/screens/EditorScreen.js +426 -0
- package/dist/ui/screens/EditorScreen.js.map +1 -0
- package/dist/ui/screens/LibraryScreen.d.ts +6 -0
- package/dist/ui/screens/LibraryScreen.d.ts.map +1 -0
- package/dist/ui/screens/LibraryScreen.js +580 -0
- package/dist/ui/screens/LibraryScreen.js.map +1 -0
- package/dist/ui/screens/MediaScreen.d.ts +2 -0
- package/dist/ui/screens/MediaScreen.d.ts.map +1 -0
- package/dist/ui/screens/MediaScreen.js +173 -0
- package/dist/ui/screens/MediaScreen.js.map +1 -0
- package/dist/ui/screens/SettingsScreen.d.ts +4 -0
- package/dist/ui/screens/SettingsScreen.d.ts.map +1 -0
- package/dist/ui/screens/SettingsScreen.js +751 -0
- package/dist/ui/screens/SettingsScreen.js.map +1 -0
- package/dist/ui/screens/SocialShareScreen.d.ts +2 -0
- package/dist/ui/screens/SocialShareScreen.d.ts.map +1 -0
- package/dist/ui/screens/SocialShareScreen.js +224 -0
- package/dist/ui/screens/SocialShareScreen.js.map +1 -0
- package/dist/ui/screens/SubscriptionsScreen.d.ts +2 -0
- package/dist/ui/screens/SubscriptionsScreen.d.ts.map +1 -0
- package/dist/ui/screens/SubscriptionsScreen.js +441 -0
- package/dist/ui/screens/SubscriptionsScreen.js.map +1 -0
- package/dist/ui/screens/TopicsScreen.d.ts +2 -0
- package/dist/ui/screens/TopicsScreen.d.ts.map +1 -0
- package/dist/ui/screens/TopicsScreen.js +360 -0
- package/dist/ui/screens/TopicsScreen.js.map +1 -0
- package/dist/ui/screens/analytics-data.d.ts +19 -0
- package/dist/ui/screens/analytics-data.d.ts.map +1 -0
- package/dist/ui/screens/analytics-data.js +42 -0
- package/dist/ui/screens/analytics-data.js.map +1 -0
- package/dist/ui/screens/calendar-data.d.ts +45 -0
- package/dist/ui/screens/calendar-data.d.ts.map +1 -0
- package/dist/ui/screens/calendar-data.js +70 -0
- package/dist/ui/screens/calendar-data.js.map +1 -0
- package/dist/ui/screens/content-insights-data.d.ts +54 -0
- package/dist/ui/screens/content-insights-data.d.ts.map +1 -0
- package/dist/ui/screens/content-insights-data.js +82 -0
- package/dist/ui/screens/content-insights-data.js.map +1 -0
- package/dist/ui/screens/content-view.d.ts +21 -0
- package/dist/ui/screens/content-view.d.ts.map +1 -0
- package/dist/ui/screens/content-view.js +17 -0
- package/dist/ui/screens/content-view.js.map +1 -0
- package/dist/ui/screens/library-data.d.ts +76 -0
- package/dist/ui/screens/library-data.d.ts.map +1 -0
- package/dist/ui/screens/library-data.js +116 -0
- package/dist/ui/screens/library-data.js.map +1 -0
- package/dist/ui/screens/media-upload.d.ts +19 -0
- package/dist/ui/screens/media-upload.d.ts.map +1 -0
- package/dist/ui/screens/media-upload.js +187 -0
- package/dist/ui/screens/media-upload.js.map +1 -0
- package/dist/ui/screens/public-url.d.ts +24 -0
- package/dist/ui/screens/public-url.d.ts.map +1 -0
- package/dist/ui/screens/public-url.js +74 -0
- package/dist/ui/screens/public-url.js.map +1 -0
- package/dist/ui/screens/registry.d.ts +3 -0
- package/dist/ui/screens/registry.d.ts.map +1 -0
- package/dist/ui/screens/registry.js +38 -0
- package/dist/ui/screens/registry.js.map +1 -0
- package/dist/ui/screens/render-state.d.ts +105 -0
- package/dist/ui/screens/render-state.d.ts.map +1 -0
- package/dist/ui/screens/render-state.js +127 -0
- package/dist/ui/screens/render-state.js.map +1 -0
- package/dist/ui/screens/settings-data.d.ts +55 -0
- package/dist/ui/screens/settings-data.d.ts.map +1 -0
- package/dist/ui/screens/settings-data.js +89 -0
- package/dist/ui/screens/settings-data.js.map +1 -0
- package/dist/ui/screens/settings-panels-data.d.ts +58 -0
- package/dist/ui/screens/settings-panels-data.d.ts.map +1 -0
- package/dist/ui/screens/settings-panels-data.js +88 -0
- package/dist/ui/screens/settings-panels-data.js.map +1 -0
- package/dist/ui/screens/social-share-data.d.ts +307 -0
- package/dist/ui/screens/social-share-data.d.ts.map +1 -0
- package/dist/ui/screens/social-share-data.js +447 -0
- package/dist/ui/screens/social-share-data.js.map +1 -0
- package/dist/ui/screens/topics-data.d.ts +38 -0
- package/dist/ui/screens/topics-data.d.ts.map +1 -0
- package/dist/ui/screens/topics-data.js +50 -0
- package/dist/ui/screens/topics-data.js.map +1 -0
- package/dist/ui/styles/broadsheet.css +394 -0
- package/dist/ui/theme.d.ts +23 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +87 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/tweaks.d.ts +7 -0
- package/dist/ui/tweaks.d.ts.map +1 -0
- package/dist/ui/tweaks.js +31 -0
- package/dist/ui/tweaks.js.map +1 -0
- package/dist/ui/use-hash-router.d.ts +6 -0
- package/dist/ui/use-hash-router.d.ts.map +1 -0
- package/dist/ui/use-hash-router.js +15 -0
- package/dist/ui/use-hash-router.js.map +1 -0
- package/dist/ui/use-tweaks.d.ts +6 -0
- package/dist/ui/use-tweaks.d.ts.map +1 -0
- package/dist/ui/use-tweaks.js +24 -0
- package/dist/ui/use-tweaks.js.map +1 -0
- package/dist/ui/workspace-context.d.ts +34 -0
- package/dist/ui/workspace-context.d.ts.map +1 -0
- package/dist/ui/workspace-context.js +32 -0
- package/dist/ui/workspace-context.js.map +1 -0
- package/migrations/0001_create_cms_tables.sql +200 -0
- package/migrations/0002_review_softdelete_board.sql +112 -0
- package/migrations/0003_content_contributors.sql +16 -0
- package/migrations/0004_seo_faq_columns.sql +6 -0
- package/migrations/0005_revision_delta_columns.sql +5 -0
- package/migrations/0006_processing_trigger_token.sql +4 -0
- package/migrations/0007_content_slug_redirects.sql +9 -0
- package/migrations/0008_workspace_settings.sql +17 -0
- package/migrations/0009_workspace_memberships.sql +36 -0
- package/migrations/0010_api_keys_webhooks.sql +21 -0
- package/migrations/0011_notifications_activity.sql +22 -0
- package/migrations/0012_content_imports.sql +10 -0
- package/migrations/0013_media_normalization.sql +4 -0
- package/migrations/0014_api_key_prefix.sql +3 -0
- package/migrations/0015_cms_topics.sql +7 -0
- package/migrations/0016_content_insights.sql +53 -0
- package/package.json +82 -0
- package/src/engine/activity-log.ts +39 -0
- package/src/engine/ai-prompts.ts +124 -0
- package/src/engine/ai-writeback.ts +62 -0
- package/src/engine/api-keys.ts +239 -0
- package/src/engine/content-insights.ts +198 -0
- package/src/engine/contributors.ts +95 -0
- package/src/engine/cron.ts +62 -0
- package/src/engine/d1.ts +29 -0
- package/src/engine/foundry-dispatch.ts +417 -0
- package/src/engine/import-parsers.ts +478 -0
- package/src/engine/index.ts +230 -0
- package/src/engine/invites.ts +271 -0
- package/src/engine/members.ts +216 -0
- package/src/engine/membership-rules.ts +63 -0
- package/src/engine/og-render.ts +59 -0
- package/src/engine/publish-guard.ts +123 -0
- package/src/engine/publisher.ts +1032 -0
- package/src/engine/revisions.ts +292 -0
- package/src/engine/sanitize.ts +183 -0
- package/src/engine/seed-membership.ts +92 -0
- package/src/engine/seo.ts +72 -0
- package/src/engine/slug-redirects.ts +34 -0
- package/src/engine/slug.ts +33 -0
- package/src/engine/soft-delete.ts +42 -0
- package/src/engine/tags.ts +95 -0
- package/src/engine/topics.ts +158 -0
- package/src/engine/url-guard.ts +136 -0
- package/src/engine/validator/checks/bare-url-not-autolinked.ts +78 -0
- package/src/engine/validator/checks/broken-footnote-label.ts +33 -0
- package/src/engine/validator/checks/double-encoded-entities.ts +46 -0
- package/src/engine/validator/checks/empty-alt-text.ts +35 -0
- package/src/engine/validator/checks/heading-hierarchy-skip.ts +33 -0
- package/src/engine/validator/checks/html-comment-leak.ts +58 -0
- package/src/engine/validator/checks/iframe-missing-dims-and-wrapper.ts +34 -0
- package/src/engine/validator/checks/invisible-control-chars.ts +58 -0
- package/src/engine/validator/checks/paywall-marker-leak.ts +43 -0
- package/src/engine/validator/checks/raw-block-html.ts +65 -0
- package/src/engine/validator/checks/stale-body-html.ts +39 -0
- package/src/engine/validator/checks/unresolved-footnote-anchor.ts +61 -0
- package/src/engine/validator/checks/word-gdocs-paste-artifacts.ts +72 -0
- package/src/engine/validator/index.ts +385 -0
- package/src/engine/validator/scan.ts +103 -0
- package/src/engine/validator/types.ts +114 -0
- package/src/engine/webhook-signer.ts +139 -0
- package/src/engine/webhooks.ts +224 -0
- package/src/index.ts +79 -0
- package/src/integration/index.ts +298 -0
- package/src/integration/options.ts +30 -0
- package/src/integration/vite-plugin.ts +37 -0
- package/src/providers/index.ts +2 -0
- package/src/providers/null.ts +160 -0
- package/src/providers/types.ts +284 -0
- package/src/routes/ai.ts +461 -0
- package/src/routes/analytics.ts +78 -0
- package/src/routes/api-keys.ts +133 -0
- package/src/routes/authors.ts +282 -0
- package/src/routes/authz-matrix.ts +239 -0
- package/src/routes/calendar.ts +127 -0
- package/src/routes/config.ts +99 -0
- package/src/routes/content-insights.ts +159 -0
- package/src/routes/content.ts +1753 -0
- package/src/routes/context.ts +146 -0
- package/src/routes/cron.ts +27 -0
- package/src/routes/dashboard.ts +174 -0
- package/src/routes/imports.ts +190 -0
- package/src/routes/index.ts +295 -0
- package/src/routes/media-lib.ts +405 -0
- package/src/routes/media.ts +944 -0
- package/src/routes/preview.ts +182 -0
- package/src/routes/rbac-invites.ts +220 -0
- package/src/routes/rbac.ts +155 -0
- package/src/routes/shell.ts +163 -0
- package/src/routes/subscriptions.ts +167 -0
- package/src/routes/tags.ts +93 -0
- package/src/routes/topics.ts +58 -0
- package/src/routes/webhooks.ts +233 -0
- package/src/schema/index.ts +45 -0
- package/src/schema/insights-ingest.ts +126 -0
- package/src/schema/migrations.ts +599 -0
- package/src/schema/tables.ts +59 -0
- package/src/schema/types.ts +576 -0
- package/src/ui/api/_authz.ts +100 -0
- package/src/ui/api/_content-config.ts +75 -0
- package/src/ui/api/activity.ts +33 -0
- package/src/ui/api/analytics.ts +42 -0
- package/src/ui/api/authors/[id].ts +23 -0
- package/src/ui/api/authors.ts +19 -0
- package/src/ui/api/calendar.ts +21 -0
- package/src/ui/api/content/[id]/ai/headlines.ts +10 -0
- package/src/ui/api/content/[id]/ai/meta-description.ts +11 -0
- package/src/ui/api/content/[id]/ai/og-image.ts +10 -0
- package/src/ui/api/content/[id]/ai/proofread.ts +10 -0
- package/src/ui/api/content/[id]/ai/takeaways.ts +11 -0
- package/src/ui/api/content/[id]/contributors.ts +13 -0
- package/src/ui/api/content/[id]/preview-token.ts +21 -0
- package/src/ui/api/content/[id]/revisions/[rev]/restore.ts +12 -0
- package/src/ui/api/content/[id]/revisions/[rev].ts +11 -0
- package/src/ui/api/content/[id]/revisions.ts +9 -0
- package/src/ui/api/content/[id]/seo-score.ts +10 -0
- package/src/ui/api/content/[id].ts +23 -0
- package/src/ui/api/content/bulk.ts +10 -0
- package/src/ui/api/content/counts.ts +11 -0
- package/src/ui/api/content/foundry-callback.ts +11 -0
- package/src/ui/api/content/import/confirm.ts +16 -0
- package/src/ui/api/content/import/parse.ts +16 -0
- package/src/ui/api/content/insights-ingest.ts +24 -0
- package/src/ui/api/content-insights/dismiss.ts +23 -0
- package/src/ui/api/content-insights/index.ts +21 -0
- package/src/ui/api/content-insights/undismiss.ts +23 -0
- package/src/ui/api/content.ts +21 -0
- package/src/ui/api/dashboard.ts +28 -0
- package/src/ui/api/me.ts +23 -0
- package/src/ui/api/media/[id].ts +22 -0
- package/src/ui/api/media/images.ts +9 -0
- package/src/ui/api/media/library/[id].ts +9 -0
- package/src/ui/api/media/library.ts +22 -0
- package/src/ui/api/media/podcast/abort.ts +6 -0
- package/src/ui/api/media/podcast/complete.ts +6 -0
- package/src/ui/api/media/podcast/init.ts +6 -0
- package/src/ui/api/media/podcast/part.ts +6 -0
- package/src/ui/api/media/podcast.ts +9 -0
- package/src/ui/api/media/videos/abort.ts +9 -0
- package/src/ui/api/media/videos/complete.ts +9 -0
- package/src/ui/api/media/videos/init.ts +9 -0
- package/src/ui/api/media/videos/part.ts +9 -0
- package/src/ui/api/notifications.ts +26 -0
- package/src/ui/api/search.ts +23 -0
- package/src/ui/api/settings/api-keys/[id].ts +28 -0
- package/src/ui/api/settings/api-keys.ts +25 -0
- package/src/ui/api/settings/domains.ts +37 -0
- package/src/ui/api/settings/integrations.ts +40 -0
- package/src/ui/api/settings/members/[userId].ts +33 -0
- package/src/ui/api/settings/members/invite.ts +27 -0
- package/src/ui/api/settings/members.ts +23 -0
- package/src/ui/api/settings/webhooks/[id]/test.ts +30 -0
- package/src/ui/api/settings/webhooks/[id].ts +29 -0
- package/src/ui/api/settings/webhooks.ts +27 -0
- package/src/ui/api/subscriptions.ts +56 -0
- package/src/ui/api/tags/[id].ts +24 -0
- package/src/ui/api/tags/index.ts +18 -0
- package/src/ui/api/topics/[id].ts +20 -0
- package/src/ui/api/topics/index.ts +17 -0
- package/src/ui/api/workspace-settings.ts +26 -0
- package/src/ui/client/boot-state.ts +42 -0
- package/src/ui/client/mount.tsx +41 -0
- package/src/ui/commands.ts +62 -0
- package/src/ui/components/CmsApp.tsx +149 -0
- package/src/ui/components/CommandPalette.tsx +118 -0
- package/src/ui/components/NoAccessScreen.tsx +79 -0
- package/src/ui/components/ShareModal.tsx +650 -0
- package/src/ui/components/SharePickers.tsx +790 -0
- package/src/ui/components/ShareStatsPanel.tsx +721 -0
- package/src/ui/components/Sidebar.tsx +86 -0
- package/src/ui/components/SiteSwitcher.tsx +100 -0
- package/src/ui/components/Topbar.tsx +93 -0
- package/src/ui/editor/AiAssistPanel.tsx +407 -0
- package/src/ui/editor/ContentForm.tsx +1462 -0
- package/src/ui/editor/Rte.tsx +382 -0
- package/src/ui/editor/ai-assist.ts +139 -0
- package/src/ui/editor/autosave.ts +36 -0
- package/src/ui/editor/content-payload.ts +125 -0
- package/src/ui/editor/editor-media-upload.ts +26 -0
- package/src/ui/editor/serialize.ts +522 -0
- package/src/ui/editor/tweet-embed.ts +60 -0
- package/src/ui/hash-router.ts +30 -0
- package/src/ui/icons.tsx +208 -0
- package/src/ui/inspector/Field.tsx +30 -0
- package/src/ui/inspector/FoundryTab.tsx +613 -0
- package/src/ui/inspector/HistoryTab.tsx +482 -0
- package/src/ui/inspector/Inspector.tsx +328 -0
- package/src/ui/inspector/OrganizeTab.tsx +534 -0
- package/src/ui/inspector/PublishTab.tsx +626 -0
- package/src/ui/inspector/Section.tsx +81 -0
- package/src/ui/inspector/SeoTab.tsx +573 -0
- package/src/ui/inspector/foundry-stages.ts +140 -0
- package/src/ui/inspector/inspector-data.ts +232 -0
- package/src/ui/inspector/organize-data.ts +51 -0
- package/src/ui/inspector/revision-diff.ts +213 -0
- package/src/ui/inspector/seo-helpers.ts +71 -0
- package/src/ui/inspector/tab-visibility.ts +37 -0
- package/src/ui/nav.ts +48 -0
- package/src/ui/pages/admin.astro +32 -0
- package/src/ui/preview/draft-page.tsx +395 -0
- package/src/ui/preview/preview-layout.ts +49 -0
- package/src/ui/screens/AnalyticsScreen.tsx +938 -0
- package/src/ui/screens/AuthorsScreen.tsx +524 -0
- package/src/ui/screens/CalendarScreen.tsx +694 -0
- package/src/ui/screens/ContentInsightsScreen.tsx +417 -0
- package/src/ui/screens/ContentRoute.tsx +35 -0
- package/src/ui/screens/DashboardScreen.tsx +654 -0
- package/src/ui/screens/EditorScreen.tsx +673 -0
- package/src/ui/screens/LibraryScreen.tsx +1350 -0
- package/src/ui/screens/MediaScreen.tsx +357 -0
- package/src/ui/screens/SettingsScreen.tsx +1841 -0
- package/src/ui/screens/SocialShareScreen.tsx +670 -0
- package/src/ui/screens/SubscriptionsScreen.tsx +1240 -0
- package/src/ui/screens/TopicsScreen.tsx +912 -0
- package/src/ui/screens/analytics-data.ts +68 -0
- package/src/ui/screens/calendar-data.ts +126 -0
- package/src/ui/screens/content-insights-data.ts +127 -0
- package/src/ui/screens/content-view.ts +30 -0
- package/src/ui/screens/library-data.ts +177 -0
- package/src/ui/screens/media-upload.ts +283 -0
- package/src/ui/screens/public-url.ts +81 -0
- package/src/ui/screens/registry.tsx +53 -0
- package/src/ui/screens/render-state.ts +228 -0
- package/src/ui/screens/settings-data.ts +140 -0
- package/src/ui/screens/settings-panels-data.ts +142 -0
- package/src/ui/screens/social-share-data.ts +753 -0
- package/src/ui/screens/topics-data.ts +75 -0
- package/src/ui/styles/broadsheet.css +394 -0
- package/src/ui/theme.ts +104 -0
- package/src/ui/tweaks.ts +37 -0
- package/src/ui/use-hash-router.ts +17 -0
- package/src/ui/use-tweaks.ts +31 -0
- package/src/ui/workspace-context.tsx +62 -0
- package/src/virtual.d.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentInsightsScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/ContentInsightsScreen.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,qBAAqB,gCAoMpC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// src/ui/screens/ContentInsightsScreen.tsx — Content Insights demand-intelligence board (bead-09).
|
|
3
|
+
// Near-clone of TopicsScreen: desk groups (geographic theater) + a pinned Best Immediate Bets
|
|
4
|
+
// ranking + a Trackers section; each card expands into the full editorial mini-brief; dismiss
|
|
5
|
+
// persists and filters subsequent loads. Native reads from SITE_DB via /admin/api/content-insights.
|
|
6
|
+
// beat is rendered as a secondary chip next to signal_type (Adaptation 3 — spec §desk-taxonomy).
|
|
7
|
+
// Broadsheet idiom only; honest loading/empty/error/schema-not-ready/last-good-board states.
|
|
8
|
+
import { useCallback, useEffect, useReducer, useState } from 'react';
|
|
9
|
+
import { Icon } from '../icons.js';
|
|
10
|
+
import { audienceQuestionGroups, bestBets, competitorWatchGroups, demandDeskGroups, discoveryKindOf, formatDemandEvidence, initInsightsState, insightsReducer, trackers, } from './content-insights-data.js';
|
|
11
|
+
export function ContentInsightsScreen() {
|
|
12
|
+
const [s, dispatch] = useReducer(insightsReducer, undefined, initInsightsState);
|
|
13
|
+
const [expanded, setExpanded] = useState(null);
|
|
14
|
+
const [dismissing, setDismissing] = useState(null);
|
|
15
|
+
const fetchBoard = useCallback(async () => {
|
|
16
|
+
dispatch({ type: 'fetch-start' });
|
|
17
|
+
try {
|
|
18
|
+
const res = await fetch('/admin/api/content-insights');
|
|
19
|
+
if (res.status === 409) {
|
|
20
|
+
dispatch({ type: 'schema-not-ready' });
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (!res.ok) {
|
|
24
|
+
dispatch({ type: 'fetch-error', error: `${res.status} ${res.statusText}` });
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const body = (await res.json());
|
|
28
|
+
dispatch({ type: 'fetch-ok', insights: body.insights ?? [], runDate: body.runDate ?? '' });
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
dispatch({ type: 'fetch-error', error: String(err) });
|
|
32
|
+
}
|
|
33
|
+
}, []);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
void fetchBoard();
|
|
36
|
+
}, [fetchBoard]);
|
|
37
|
+
const dismiss = async (card) => {
|
|
38
|
+
setDismissing(card.intent_key);
|
|
39
|
+
try {
|
|
40
|
+
const res = await fetch('/admin/api/content-insights/dismiss', {
|
|
41
|
+
method: 'POST',
|
|
42
|
+
headers: { 'content-type': 'application/json' },
|
|
43
|
+
body: JSON.stringify({ intentKey: card.intent_key }),
|
|
44
|
+
});
|
|
45
|
+
if (res.ok)
|
|
46
|
+
dispatch({ type: 'dismiss-ok', intentKey: card.intent_key });
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
setDismissing(null);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
// DEMAND board groups (GSC) — the two opportunity sub-kinds render in their own
|
|
53
|
+
// labelled sections (Competitor Watch + What Readers Are Asking) below.
|
|
54
|
+
const groups = demandDeskGroups(s.insights);
|
|
55
|
+
const competitorGroups = competitorWatchGroups(s.insights);
|
|
56
|
+
const audienceGroups = audienceQuestionGroups(s.insights);
|
|
57
|
+
const bets = bestBets(s.insights);
|
|
58
|
+
const trackerCards = trackers(s.insights);
|
|
59
|
+
return (_jsxs("div", { className: "page page-wide content-insights-screen fade-in", style: { maxWidth: 1340 }, children: [_jsxs("div", { className: "page-head", children: [_jsxs("div", { children: [_jsx("h1", { className: "page-title", children: "Content Insights" }), _jsx("div", { className: "page-sub", children: "Editor-ready demand intelligence \u2014 what to write next, grounded in real search demand and validated opportunity." })] }), _jsxs("button", { type: "button", className: "btn", onClick: () => void fetchBoard(), children: [_jsx(Icon, { name: "refresh", size: 16 }), " Refresh"] })] }), s.loading && !s.loaded && (_jsx("div", { className: "kicker", style: { padding: 18 }, children: "Loading the board\u2026" })), s.error && (_jsxs("div", { className: "panel panel-pad", style: { color: 'var(--red)' }, children: ["Couldn't load Content Insights \u2014 ", s.error, ' ', _jsxs("button", { type: "button", className: "btn sm", onClick: () => void fetchBoard(), children: [_jsx(Icon, { name: "refresh", size: 14 }), " Retry"] })] })), s.schemaNotReady && (_jsx(EmptyPanel, { icon: "layers", message: "Content Insights isn't provisioned on this site yet (migration 0016 not applied)." })), s.loaded && !s.error && !s.schemaNotReady && s.insights.length === 0 && (_jsx(EmptyPanel, { icon: "sparkle", message: "No insights yet \u2014 the daily research run hasn't landed a board." })), bets.length > 0 && (_jsxs("div", { className: "panel", style: { overflow: 'hidden', marginBottom: 'var(--gap)' }, children: [_jsx("div", { style: { padding: '15px 18px 12px' }, children: _jsx("div", { className: "card-title", children: "Best immediate bets" }) }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10, padding: 18 }, children: bets.map((c) => (_jsx(InsightCardRow, { card: c, expanded: expanded === c.intent_key, onToggle: () => setExpanded(expanded === c.intent_key ? null : c.intent_key), onDismiss: () => void dismiss(c), dismissing: dismissing === c.intent_key }, c.intent_key))) })] })), groups.map((g) => (_jsxs("div", { className: "panel", style: { overflow: 'hidden', marginBottom: 'var(--gap)' }, children: [_jsxs("div", { style: {
|
|
60
|
+
padding: '15px 18px 12px',
|
|
61
|
+
display: 'flex',
|
|
62
|
+
alignItems: 'baseline',
|
|
63
|
+
gap: 10,
|
|
64
|
+
}, children: [_jsx("div", { className: "card-title", style: { textTransform: 'capitalize' }, children: g.desk }), _jsxs("span", { className: "kicker", children: [g.cards.length, " ideas"] })] }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10, padding: 18 }, children: g.cards.map((c) => (_jsx(InsightCardRow, { card: c, expanded: expanded === c.intent_key, onToggle: () => setExpanded(expanded === c.intent_key ? null : c.intent_key), onDismiss: () => void dismiss(c), dismissing: dismissing === c.intent_key }, c.intent_key))) })] }, g.desk))), competitorGroups.length > 0 && (_jsx(OpportunitySection, { title: "Competitor Watch", subtitle: "What rivals are publishing that we're missing", groups: competitorGroups, expanded: expanded, setExpanded: setExpanded, dismiss: dismiss, dismissing: dismissing })), audienceGroups.length > 0 && (_jsx(OpportunitySection, { title: "What Readers Are Asking", subtitle: "Real reader questions (Google People-Also-Ask) we don't yet answer", groups: audienceGroups, expanded: expanded, setExpanded: setExpanded, dismiss: dismiss, dismissing: dismissing })), trackerCards.length > 0 && (_jsxs("div", { className: "panel", style: { overflow: 'hidden' }, children: [_jsx("div", { style: { padding: '15px 18px 12px' }, children: _jsx("div", { className: "card-title", children: "Trackers" }) }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10, padding: 18 }, children: trackerCards.map((c) => (_jsx(InsightCardRow, { card: c, expanded: expanded === c.intent_key, onToggle: () => setExpanded(expanded === c.intent_key ? null : c.intent_key), onDismiss: () => void dismiss(c), dismissing: dismissing === c.intent_key }, c.intent_key))) })] }))] }));
|
|
65
|
+
}
|
|
66
|
+
/** One labelled opportunity SECTION (Competitor Watch / What Readers Are Asking),
|
|
67
|
+
* grouped by desk inside. Reuses the desk-panel + InsightCardRow rendering so the
|
|
68
|
+
* two new sub-kinds match the rest of the board. */
|
|
69
|
+
function OpportunitySection({ title, subtitle, groups, expanded, setExpanded, dismiss, dismissing, }) {
|
|
70
|
+
return (_jsxs("div", { className: "panel", style: { overflow: 'hidden', marginBottom: 'var(--gap)' }, children: [_jsxs("div", { style: { padding: '15px 18px 6px' }, children: [_jsx("div", { className: "card-title", children: title }), _jsx("div", { className: "kicker", style: { marginTop: 2 }, children: subtitle })] }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), groups.map((g) => (_jsxs("div", { children: [_jsxs("div", { style: {
|
|
71
|
+
padding: '12px 18px 6px',
|
|
72
|
+
display: 'flex',
|
|
73
|
+
alignItems: 'baseline',
|
|
74
|
+
gap: 10,
|
|
75
|
+
}, children: [_jsx("div", { className: "card-title", style: { textTransform: 'capitalize', fontSize: '0.95em' }, children: g.desk }), _jsxs("span", { className: "kicker", children: [g.cards.length, " ideas"] })] }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10, padding: '0 18px 14px' }, children: g.cards.map((c) => (_jsx(InsightCardRow, { card: c, expanded: expanded === c.intent_key, onToggle: () => setExpanded(expanded === c.intent_key ? null : c.intent_key), onDismiss: () => void dismiss(c), dismissing: dismissing === c.intent_key }, c.intent_key))) })] }, g.desk)))] }));
|
|
76
|
+
}
|
|
77
|
+
function evidenceChip(card) {
|
|
78
|
+
if ('query' in card.evidence)
|
|
79
|
+
return formatDemandEvidence(card.evidence);
|
|
80
|
+
// Kind-aware opportunity chip: audience rows are grounded in reader questions,
|
|
81
|
+
// competitor rows in rival article sources.
|
|
82
|
+
if (card.signal_type === 'opportunity' && discoveryKindOf(card) === 'audience_question') {
|
|
83
|
+
const n = card.evidence.source_count;
|
|
84
|
+
return `${card.evidence.basis} · ${n} ${n === 1 ? 'question' : 'questions'}`;
|
|
85
|
+
}
|
|
86
|
+
return `${card.evidence.basis} · ${card.evidence.source_count} sources`;
|
|
87
|
+
}
|
|
88
|
+
function InsightCardRow({ card, expanded, onToggle, onDismiss, dismissing, }) {
|
|
89
|
+
return (_jsxs("div", { style: {
|
|
90
|
+
border: '1px solid var(--border)',
|
|
91
|
+
borderRadius: 'var(--radius)',
|
|
92
|
+
background: 'var(--panel-2)',
|
|
93
|
+
padding: '11px 12px',
|
|
94
|
+
}, children: [_jsxs("div", { style: {
|
|
95
|
+
display: 'grid',
|
|
96
|
+
gridTemplateColumns: 'minmax(0,1fr) auto',
|
|
97
|
+
alignItems: 'center',
|
|
98
|
+
gap: 12,
|
|
99
|
+
}, children: [_jsxs("button", { type: "button", onClick: onToggle, style: {
|
|
100
|
+
textAlign: 'left',
|
|
101
|
+
background: 'none',
|
|
102
|
+
border: 'none',
|
|
103
|
+
cursor: 'pointer',
|
|
104
|
+
minWidth: 0,
|
|
105
|
+
}, children: [_jsx("div", { style: { fontSize: 14, fontWeight: 600, color: 'var(--ink)' }, children: card.headline }), _jsx("div", { className: "kicker", style: { marginTop: 4 }, children: card.brief.why_now }), _jsx("div", { className: "mono", style: { marginTop: 4, fontSize: 12, color: 'var(--ink-faint)' }, children: evidenceChip(card) })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { className: "pill pdot", children: card.signal_type }), card.beat != null && _jsx("span", { className: "pill pdot", children: card.beat }), _jsxs("button", { type: "button", className: "btn danger sm", onClick: onDismiss, disabled: dismissing, children: [_jsx(Icon, { name: "x", size: 13 }), " ", dismissing ? 'Dismissing…' : 'Dismiss'] })] })] }), expanded && (_jsxs("div", { style: {
|
|
106
|
+
marginTop: 12,
|
|
107
|
+
borderTop: '1px solid var(--border)',
|
|
108
|
+
paddingTop: 12,
|
|
109
|
+
fontSize: 13.5,
|
|
110
|
+
color: 'var(--ink-soft)',
|
|
111
|
+
lineHeight: 1.6,
|
|
112
|
+
}, children: [_jsxs("div", { children: [_jsx("strong", { children: "Angle:" }), " ", card.brief.angle] }), _jsxs("div", { style: { marginTop: 8 }, children: [_jsx("strong", { children: "Cluster:" }), " ", card.brief.cluster.canonical, card.brief.cluster.spokes.length > 0 && ` — ${card.brief.cluster.spokes.join(', ')}`] }), card.brief.sources.length > 0 && (_jsxs("div", { style: { marginTop: 8 }, children: [_jsx("strong", { children: "Sources:" }), _jsx("ul", { style: { margin: '4px 0 0', paddingLeft: 18 }, children: card.brief.sources.map((src) => (_jsx("li", { children: _jsx("a", { href: src.url, target: "_blank", rel: "noreferrer", children: src.title }) }, src.url))) })] }))] }))] }));
|
|
113
|
+
}
|
|
114
|
+
function EmptyPanel({ icon, message, }) {
|
|
115
|
+
return (_jsxs("div", { style: {
|
|
116
|
+
border: '1px solid var(--border)',
|
|
117
|
+
borderRadius: 'var(--radius)',
|
|
118
|
+
padding: '28px 20px',
|
|
119
|
+
textAlign: 'center',
|
|
120
|
+
fontSize: 13,
|
|
121
|
+
color: 'var(--ink-muted)',
|
|
122
|
+
background: 'var(--panel-2)',
|
|
123
|
+
display: 'flex',
|
|
124
|
+
flexDirection: 'column',
|
|
125
|
+
alignItems: 'center',
|
|
126
|
+
gap: 8,
|
|
127
|
+
}, children: [_jsx(Icon, { name: icon, size: 22, style: { color: 'var(--border)', opacity: 0.7 } }), _jsx("span", { style: { maxWidth: 360 }, children: message })] }));
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=ContentInsightsScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentInsightsScreen.js","sourceRoot":"","sources":["../../../src/ui/screens/ContentInsightsScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentRoute.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/ContentRoute.tsx"],"names":[],"mappings":"AAcA,wBAAgB,YAAY,gCAoB3B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// src/ui/screens/ContentRoute.tsx — hosts the library↔editor toggle.
|
|
3
|
+
//
|
|
4
|
+
// ContentRoute owns the open-doc state (useReducer over contentViewReducer).
|
|
5
|
+
// When open === null, the Library screen is shown.
|
|
6
|
+
// When open !== null, the Editor screen takes over.
|
|
7
|
+
//
|
|
8
|
+
// LibraryScreen and EditorScreen are implemented in Tasks 11 and 13.
|
|
9
|
+
// This file creates thin stubs so the registry can compile now (Task 10).
|
|
10
|
+
import { useReducer } from 'react';
|
|
11
|
+
import { contentViewReducer, initialContentView } from './content-view.js';
|
|
12
|
+
import { EditorScreen } from './EditorScreen.js';
|
|
13
|
+
import { LibraryScreen } from './LibraryScreen.js';
|
|
14
|
+
export function ContentRoute() {
|
|
15
|
+
const [view, dispatch] = useReducer(contentViewReducer, initialContentView);
|
|
16
|
+
function openDoc(id, contentType) {
|
|
17
|
+
if (id === null) {
|
|
18
|
+
dispatch({ type: 'new', contentType: contentType ?? 'article' });
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
dispatch({ type: 'open', id, contentType });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function handleClose() {
|
|
25
|
+
dispatch({ type: 'close' });
|
|
26
|
+
}
|
|
27
|
+
if (view.open === null) {
|
|
28
|
+
return _jsx(LibraryScreen, { openDoc: openDoc });
|
|
29
|
+
}
|
|
30
|
+
return _jsx(EditorScreen, { docRef: view.open, onClose: handleClose });
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ContentRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentRoute.js","sourceRoot":"","sources":["../../../src/ui/screens/ContentRoute.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,EAAE;AACF,6EAA6E;AAC7E,mDAAmD;AACnD,oDAAoD;AACpD,EAAE;AACF,qEAAqE;AACrE,0EAA0E;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAoB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,UAAU,YAAY;IAC3B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;IAE3E,SAAS,OAAO,CAAC,EAAiB,EAAE,WAAyB;QAC5D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACjB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;QAC5C,CAAC;IACF,CAAC;IAED,SAAS,WAAW;QACnB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,GAAI,CAAA;IAC3C,CAAC;IAED,OAAO,KAAC,YAAY,IAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,GAAI,CAAA;AACjE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface DashboardScreenProps {
|
|
2
|
+
/** Open a content item in the editor (same seam as LibraryScreen). */
|
|
3
|
+
openDoc: (id: string | null) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function DashboardScreen({ openDoc }: DashboardScreenProps): import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=DashboardScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/DashboardScreen.tsx"],"names":[],"mappings":"AAgCA,MAAM,WAAW,oBAAoB;IACpC,sEAAsE;IACtE,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CACpC;AA6DD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,+BA+EhE"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
// src/ui/screens/DashboardScreen.tsx — Dashboard screen (P5 Task 9).
|
|
3
|
+
//
|
|
4
|
+
// Renders the four stat cards (Published, Subscribers, Reads, Avg read time),
|
|
5
|
+
// the needs-attention queue, the activity feed, and the top-content table.
|
|
6
|
+
//
|
|
7
|
+
// All data comes from GET /admin/api/dashboard. Provider-backed cards
|
|
8
|
+
// (reads, avg-time, subscribers) honour the ProviderResult live/partial/empty
|
|
9
|
+
// convention via selectKpiState/formatKpi. First-party cards (published count,
|
|
10
|
+
// needs-attention queue, activity feed) are live when the workspace has data.
|
|
11
|
+
//
|
|
12
|
+
// NO BData, NO mock numbers — honest live/partial/empty rendering only.
|
|
13
|
+
// Broadsheet re-skin: serif stat values, .kicker eyebrows, .masthead-rule under
|
|
14
|
+
// card titles, .pill status chips, and a .tbl "Top performing" table.
|
|
15
|
+
import { useCallback, useEffect, useReducer } from 'react';
|
|
16
|
+
import { Icon } from '../icons.js';
|
|
17
|
+
import { useWorkspace } from '../workspace-context.js';
|
|
18
|
+
import { formatKpi, mergeTopContent, selectKpiState, splitNeedsAttention, } from './render-state.js';
|
|
19
|
+
function init() {
|
|
20
|
+
return { loading: true, error: null, data: null };
|
|
21
|
+
}
|
|
22
|
+
function reducer(state, action) {
|
|
23
|
+
switch (action.type) {
|
|
24
|
+
case 'fetch-start':
|
|
25
|
+
return { ...state, loading: true, error: null };
|
|
26
|
+
case 'fetch-ok':
|
|
27
|
+
return { loading: false, error: null, data: action.data };
|
|
28
|
+
case 'fetch-error':
|
|
29
|
+
return { loading: false, error: action.error, data: null };
|
|
30
|
+
default:
|
|
31
|
+
return state;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// DashboardScreen
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
export function DashboardScreen({ openDoc }) {
|
|
38
|
+
const { active } = useWorkspace();
|
|
39
|
+
const [s, dispatch] = useReducer(reducer, undefined, init);
|
|
40
|
+
const fetchData = useCallback(async () => {
|
|
41
|
+
dispatch({ type: 'fetch-start' });
|
|
42
|
+
try {
|
|
43
|
+
const res = await fetch('/admin/api/dashboard');
|
|
44
|
+
if (!res.ok) {
|
|
45
|
+
dispatch({ type: 'fetch-error', error: `${res.status} ${res.statusText}` });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const data = (await res.json());
|
|
49
|
+
dispatch({ type: 'fetch-ok', data });
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
dispatch({ type: 'fetch-error', error: String(err) });
|
|
53
|
+
}
|
|
54
|
+
}, []);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
void fetchData();
|
|
57
|
+
}, [fetchData]);
|
|
58
|
+
// ---- Greeting / masthead eyebrow -----
|
|
59
|
+
const today = new Date();
|
|
60
|
+
const greeting = greetingFor(today.getHours());
|
|
61
|
+
const dateLabel = today.toLocaleDateString(undefined, {
|
|
62
|
+
weekday: 'long',
|
|
63
|
+
month: 'long',
|
|
64
|
+
day: 'numeric',
|
|
65
|
+
year: 'numeric',
|
|
66
|
+
});
|
|
67
|
+
const siteName = active?.name ?? null;
|
|
68
|
+
return (_jsxs("div", { className: "page dashboard-screen fade-in", children: [_jsxs("div", { className: "page-head", style: { flexWrap: 'wrap' }, children: [_jsxs("div", { style: { minWidth: 0 }, children: [_jsxs("div", { className: "kicker", style: { marginBottom: 8 }, children: [dateLabel, siteName ? ` · ${siteName}` : ''] }), _jsxs("h1", { className: "page-title", children: [greeting, siteName ? `, ${siteName}` : ''] })] }), _jsx("div", { style: { display: 'flex', gap: 8 }, children: _jsxs("button", { type: "button", className: "btn primary", onClick: () => openDoc(null), children: [_jsx(Icon, { name: "plus", size: 16 }), " New article"] }) })] }), s.loading && (_jsx("div", { className: "kicker", style: { color: 'var(--ink-muted)' }, children: "Loading dashboard\u2026" })), !s.loading && s.error && (_jsxs("div", { className: "panel panel-pad", style: { color: 'var(--red)', fontSize: 14 }, children: [s.error, _jsxs("button", { type: "button", className: "btn sm", onClick: () => void fetchData(), style: { marginLeft: 12 }, children: [_jsx(Icon, { name: "refresh", size: 14 }), " Retry"] })] })), !s.loading && !s.error && s.data && _jsx(DashboardContent, { data: s.data, openDoc: openDoc })] }));
|
|
69
|
+
}
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
// DashboardContent — main body once loaded
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
function DashboardContent({ data, openDoc, }) {
|
|
74
|
+
const attnItems = splitNeedsAttention(data.needsAttention);
|
|
75
|
+
// Top content: merge provider reads with D1 titles (provider already has titles from route)
|
|
76
|
+
const providerTopItems = data.topContent.data ?? [];
|
|
77
|
+
const topItems = mergeTopContent(providerTopItems, {}); // route already hydrated titles
|
|
78
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid-stats", style: { marginBottom: 'var(--gap)' }, children: [_jsx(StatCard, { label: "Published \u00B7 7 days", status: "live", value: String(data.publishedCount), note: null }), _jsx(ProviderStatCard, { label: "Subscribers", result: data.subscribers, valueKey: "active", fmt: "num", emptyNote: "Connect LemonSqueezy" }), _jsx(ProviderStatCard, { label: "Reads", result: data.reads, valueKey: "reads", fmt: "num", emptyNote: "No analytics data" }), _jsx(AvgReadCard, { result: data.reads })] }), _jsxs("div", { className: "grid-split", children: [_jsxs("div", { className: "panel", style: { overflow: 'hidden' }, children: [_jsx("div", { style: {
|
|
79
|
+
display: 'flex',
|
|
80
|
+
alignItems: 'center',
|
|
81
|
+
justifyContent: 'space-between',
|
|
82
|
+
padding: '16px 18px 12px',
|
|
83
|
+
}, children: _jsx("div", { className: "card-title", children: "Needs your attention" }) }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), attnItems.length === 0 ? (_jsx(EmptyBox, { message: "Nothing needs attention right now." })) : (_jsx("div", { style: { padding: '6px 8px 8px' }, children: attnItems.map((item) => (_jsx(AttentionRow, { item: item, onClick: () => openDoc(item.id) }, item.id))) }))] }), _jsxs("div", { className: "panel", style: { overflow: 'hidden' }, children: [_jsx("div", { className: "card-title", style: { padding: '16px 18px 12px' }, children: "Recent activity" }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), _jsx(ActivityFeed, { result: data.activity })] })] }), _jsxs("div", { className: "panel", style: { marginTop: 'var(--gap)', overflow: 'hidden' }, children: [_jsx("div", { style: {
|
|
84
|
+
display: 'flex',
|
|
85
|
+
alignItems: 'center',
|
|
86
|
+
justifyContent: 'space-between',
|
|
87
|
+
padding: '16px 18px 12px',
|
|
88
|
+
}, children: _jsx("div", { className: "card-title", children: "Top performing this week" }) }), _jsx("hr", { className: "masthead-rule", style: { margin: '0 18px' } }), data.topContent.status === 'empty' || topItems.length === 0 ? (_jsx(EmptyBox, { message: "Top content will appear once the analytics provider is configured." })) : (_jsxs(_Fragment, { children: [data.topContent.status === 'partial' && (_jsx(PartialBanner, { message: "Reads data is partial \u2014 full analytics rollup pending." })), _jsxs("table", { className: "tbl", style: { marginTop: 4 }, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { style: { paddingLeft: 18 }, children: "#" }), _jsx("th", { children: "Title" }), _jsx("th", { children: "Reads" })] }) }), _jsx("tbody", { children: topItems.map((item, i) => (_jsxs("tr", { onClick: () => openDoc(item.id), children: [_jsx("td", { className: "mono tnum", style: { paddingLeft: 18, color: 'var(--ink-faint)', fontSize: 13 }, children: String(i + 1).padStart(2, '0') }), _jsx("td", { style: { maxWidth: 420 }, children: _jsx("div", { style: {
|
|
89
|
+
fontWeight: 600,
|
|
90
|
+
color: 'var(--ink)',
|
|
91
|
+
whiteSpace: 'nowrap',
|
|
92
|
+
overflow: 'hidden',
|
|
93
|
+
textOverflow: 'ellipsis',
|
|
94
|
+
}, children: item.title ?? '(untitled)' }) }), _jsx("td", { className: "tnum", style: { fontWeight: 600 }, children: item.reads !== null ? item.reads.toLocaleString('en-US') : '—' })] }, item.id))) })] })] }))] })] }));
|
|
95
|
+
}
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// StatCard — broadsheet stat card: kicker label + serif value + sub note.
|
|
98
|
+
//
|
|
99
|
+
// Sparklines/trend arrows are the prototype's signature device, but the live
|
|
100
|
+
// dashboard payload carries no historical series or trend %, and this codebase
|
|
101
|
+
// forbids mock numbers — so the card faithfully renders the kicker+serif device
|
|
102
|
+
// with the honest live value and any partial/pending sub-note, no fabricated
|
|
103
|
+
// trend. (A series, if the route ever supplies one, drops straight into the
|
|
104
|
+
// flex slot beside the value.)
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
function StatCard({ label, status, value, note, }) {
|
|
107
|
+
const isEmpty = status === 'empty' || value === null;
|
|
108
|
+
return (_jsxs("div", { className: "panel panel-pad", style: { display: 'flex', flexDirection: 'column', gap: 4 }, children: [_jsx("div", { className: "kicker", children: label }), _jsx("div", { style: {
|
|
109
|
+
display: 'flex',
|
|
110
|
+
alignItems: 'flex-end',
|
|
111
|
+
justifyContent: 'space-between',
|
|
112
|
+
gap: 10,
|
|
113
|
+
}, children: _jsx("div", { className: "serif tnum", style: {
|
|
114
|
+
fontSize: 34,
|
|
115
|
+
fontWeight: 600,
|
|
116
|
+
lineHeight: 1,
|
|
117
|
+
color: isEmpty ? 'var(--ink-muted)' : 'var(--ink)',
|
|
118
|
+
whiteSpace: 'nowrap',
|
|
119
|
+
}, children: isEmpty ? '—' : value }) }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, marginTop: 2, minHeight: 16 }, children: [status === 'partial' && (_jsxs("span", { style: {
|
|
120
|
+
display: 'inline-flex',
|
|
121
|
+
alignItems: 'center',
|
|
122
|
+
gap: 3,
|
|
123
|
+
fontSize: 12,
|
|
124
|
+
fontWeight: 700,
|
|
125
|
+
color: 'var(--amber)',
|
|
126
|
+
}, children: [_jsx(Icon, { name: "bolt", size: 12 }), " partial"] })), note && _jsx("span", { style: { fontSize: 12, color: 'var(--ink-muted)' }, children: note })] })] }));
|
|
127
|
+
}
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
// ProviderStatCard — card backed by a ProviderResult<Record<string, number | null>>
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
function ProviderStatCard({ label, result, valueKey, fmt, emptyNote, }) {
|
|
132
|
+
const kpiStatus = selectKpiState(result);
|
|
133
|
+
if (kpiStatus === 'empty') {
|
|
134
|
+
return _jsx(StatCard, { label: label, status: "empty", value: null, note: emptyNote });
|
|
135
|
+
}
|
|
136
|
+
const raw = result.data?.[valueKey] ?? null;
|
|
137
|
+
const formatted = formatKpi(raw, fmt);
|
|
138
|
+
const isPending = formatted !== null && typeof formatted === 'object' && formatted.pending;
|
|
139
|
+
return (_jsx(StatCard, { label: label, status: kpiStatus, value: isPending ? null : formatted, note: isPending ? '— pending backfill' : null }));
|
|
140
|
+
}
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
// AvgReadCard — special card for avg read time (seconds → "Xm Ys")
|
|
143
|
+
// ---------------------------------------------------------------------------
|
|
144
|
+
function AvgReadCard({ result }) {
|
|
145
|
+
const kpiStatus = selectKpiState(result);
|
|
146
|
+
if (kpiStatus === 'empty') {
|
|
147
|
+
return _jsx(StatCard, { label: "Avg read time", status: "empty", value: null, note: "No analytics data" });
|
|
148
|
+
}
|
|
149
|
+
const secs = result.data?.avgReadSeconds ?? null;
|
|
150
|
+
const display = secs === null ? null : formatAvgTime(secs);
|
|
151
|
+
return _jsx(StatCard, { label: "Avg read time", status: kpiStatus, value: display, note: null });
|
|
152
|
+
}
|
|
153
|
+
function formatAvgTime(secs) {
|
|
154
|
+
const m = Math.floor(secs / 60);
|
|
155
|
+
const s = Math.floor(secs % 60);
|
|
156
|
+
if (m === 0)
|
|
157
|
+
return `${s}s`;
|
|
158
|
+
if (s === 0)
|
|
159
|
+
return `${m}m`;
|
|
160
|
+
return `${m}m ${s}s`;
|
|
161
|
+
}
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
// AttentionRow — broadsheet queue row: title + meta + status pill
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
const ATTN_META = {
|
|
166
|
+
review: { label: 'In review', icon: 'eye' },
|
|
167
|
+
processing: { label: 'Processing', icon: 'refresh' },
|
|
168
|
+
scheduled: { label: 'Scheduled', icon: 'clock' },
|
|
169
|
+
draft: { label: 'Draft', icon: 'edit' },
|
|
170
|
+
};
|
|
171
|
+
function AttentionRow({ item, onClick, }) {
|
|
172
|
+
const meta = ATTN_META[item.pill];
|
|
173
|
+
return (_jsxs("button", { type: "button", onClick: onClick, style: {
|
|
174
|
+
display: 'flex',
|
|
175
|
+
alignItems: 'center',
|
|
176
|
+
gap: 13,
|
|
177
|
+
padding: '11px 10px',
|
|
178
|
+
borderRadius: 9,
|
|
179
|
+
cursor: 'pointer',
|
|
180
|
+
width: '100%',
|
|
181
|
+
textAlign: 'left',
|
|
182
|
+
border: 0,
|
|
183
|
+
background: 'transparent',
|
|
184
|
+
font: 'inherit',
|
|
185
|
+
color: 'inherit',
|
|
186
|
+
}, onMouseEnter: (e) => {
|
|
187
|
+
e.currentTarget.style.background = 'var(--hover)';
|
|
188
|
+
}, onMouseLeave: (e) => {
|
|
189
|
+
e.currentTarget.style.background = 'transparent';
|
|
190
|
+
}, children: [_jsx("div", { style: {
|
|
191
|
+
width: 42,
|
|
192
|
+
height: 42,
|
|
193
|
+
borderRadius: 8,
|
|
194
|
+
flex: 'none',
|
|
195
|
+
background: 'var(--field)',
|
|
196
|
+
border: '1px solid var(--border)',
|
|
197
|
+
display: 'grid',
|
|
198
|
+
placeItems: 'center',
|
|
199
|
+
color: 'var(--ink-muted)',
|
|
200
|
+
}, children: _jsx(Icon, { name: item.type === 'video' ? 'video' : 'doc', size: 16 }) }), _jsx("div", { style: { flex: 1, minWidth: 0 }, children: _jsx("div", { style: {
|
|
201
|
+
fontSize: 14,
|
|
202
|
+
fontWeight: 600,
|
|
203
|
+
color: 'var(--ink)',
|
|
204
|
+
whiteSpace: 'nowrap',
|
|
205
|
+
overflow: 'hidden',
|
|
206
|
+
textOverflow: 'ellipsis',
|
|
207
|
+
}, children: item.title || '(Untitled)' }) }), _jsxs("span", { className: `pill ${item.pill}`, children: [_jsx("span", { className: "pdot" }), meta.label] })] }));
|
|
208
|
+
}
|
|
209
|
+
// ---------------------------------------------------------------------------
|
|
210
|
+
// ActivityFeed
|
|
211
|
+
// ---------------------------------------------------------------------------
|
|
212
|
+
function ActivityFeed({ result }) {
|
|
213
|
+
if (result.status === 'empty' || result.data.length === 0) {
|
|
214
|
+
return _jsx(EmptyBox, { message: "No activity yet. Activity appears after content is published." });
|
|
215
|
+
}
|
|
216
|
+
const rows = result.data;
|
|
217
|
+
return (_jsx("div", { style: { padding: '10px 18px 16px' }, children: rows.map((row, i) => (_jsx(ActivityEntry, { row: row, last: i === rows.length - 1 }, row.id))) }));
|
|
218
|
+
}
|
|
219
|
+
function ActivityEntry({ row, last }) {
|
|
220
|
+
const when = row.created_at ? formatRelTime(row.created_at) : '';
|
|
221
|
+
return (_jsxs("div", { style: {
|
|
222
|
+
display: 'flex',
|
|
223
|
+
gap: 11,
|
|
224
|
+
padding: '9px 0',
|
|
225
|
+
borderBottom: last ? 'none' : '1px solid var(--border-soft)',
|
|
226
|
+
}, children: [_jsx(Icon, { name: "checkCircle", size: 16, style: { color: 'var(--green)', flexShrink: 0, marginTop: 2 } }), _jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [_jsxs("div", { style: { fontSize: 13, color: 'var(--ink-soft)', lineHeight: 1.45 }, children: [row.action, row.target_title ? (_jsxs(_Fragment, { children: [' ', _jsxs("span", { style: { color: 'var(--ink)' }, children: ["\u201C", row.target_title, "\u201D"] })] })) : null] }), _jsx("div", { style: { fontSize: 11, color: 'var(--ink-faint)', marginTop: 2 }, children: when })] })] }));
|
|
227
|
+
}
|
|
228
|
+
// ---------------------------------------------------------------------------
|
|
229
|
+
// Helpers / micro-components
|
|
230
|
+
// ---------------------------------------------------------------------------
|
|
231
|
+
function EmptyBox({ message }) {
|
|
232
|
+
return (_jsx("div", { style: {
|
|
233
|
+
padding: '24px 18px',
|
|
234
|
+
textAlign: 'center',
|
|
235
|
+
fontSize: 13,
|
|
236
|
+
color: 'var(--ink-muted)',
|
|
237
|
+
}, children: message }));
|
|
238
|
+
}
|
|
239
|
+
function PartialBanner({ message }) {
|
|
240
|
+
return (_jsxs("div", { style: {
|
|
241
|
+
margin: '8px 18px 0',
|
|
242
|
+
padding: '6px 12px',
|
|
243
|
+
background: 'color-mix(in srgb, var(--amber) 8%, transparent)',
|
|
244
|
+
border: '1px solid color-mix(in srgb, var(--amber) 20%, transparent)',
|
|
245
|
+
borderRadius: 7,
|
|
246
|
+
fontSize: 12,
|
|
247
|
+
color: 'var(--amber)',
|
|
248
|
+
display: 'flex',
|
|
249
|
+
alignItems: 'center',
|
|
250
|
+
gap: 7,
|
|
251
|
+
}, children: [_jsx(Icon, { name: "bolt", size: 13 }), message] }));
|
|
252
|
+
}
|
|
253
|
+
function greetingFor(hour) {
|
|
254
|
+
if (hour < 12)
|
|
255
|
+
return 'Good morning';
|
|
256
|
+
if (hour < 17)
|
|
257
|
+
return 'Good afternoon';
|
|
258
|
+
return 'Good evening';
|
|
259
|
+
}
|
|
260
|
+
function formatRelTime(epochSecs) {
|
|
261
|
+
const diff = Date.now() / 1000 - epochSecs;
|
|
262
|
+
if (diff < 60)
|
|
263
|
+
return 'just now';
|
|
264
|
+
if (diff < 3600)
|
|
265
|
+
return `${Math.floor(diff / 60)}m ago`;
|
|
266
|
+
if (diff < 86400)
|
|
267
|
+
return `${Math.floor(diff / 3600)}h ago`;
|
|
268
|
+
return new Date(epochSecs * 1000).toLocaleDateString(undefined, {
|
|
269
|
+
month: 'short',
|
|
270
|
+
day: 'numeric',
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=DashboardScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardScreen.js","sourceRoot":"","sources":["../../../src/ui/screens/DashboardScreen.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,uEAAuE;AACvE,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,EAAE;AACF,wEAAwE;AACxE,gFAAgF;AAChF,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACN,SAAS,EAET,eAAe,EAEf,cAAc,EACd,mBAAmB,GAEnB,MAAM,mBAAmB,CAAA;AAiD1B,SAAS,IAAI;IACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAClD,CAAC;AAED,SAAS,OAAO,CAAC,KAAqB,EAAE,MAAuB;IAC9D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,aAAa;YACjB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QAChD,KAAK,UAAU;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAC1D,KAAK,aAAa;YACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAC3D;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAwB;IAChE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAA;IACjC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;gBAC3E,OAAM;YACP,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqB,CAAA;YACnD,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC;IACF,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,SAAS,EAAE,CAAA;IACjB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,yCAAyC;IAEzC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACrD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KACf,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,CAAA;IAErC,OAAO,CACN,eAAK,SAAS,EAAC,+BAA+B,aAE7C,eAAK,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACrD,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aAC1B,eAAK,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAChD,SAAS,EACT,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAC5B,EACN,cAAI,SAAS,EAAC,YAAY,aACxB,QAAQ,EACR,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAC5B,IACA,EACN,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YACtC,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aACzE,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,oBACtB,GACJ,IACD,EAEL,CAAC,CAAC,OAAO,IAAI,CACb,cAAK,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,wCAEtD,CACN,EAEA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CACzB,eAAK,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,aAC3E,CAAC,CAAC,KAAK,EACR,kBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,EAC/B,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAEzB,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAE,EAAE,GAAI,cACzB,IACJ,CACN,EAEA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,KAAC,gBAAgB,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,IACpF,CACN,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,EACzB,IAAI,EACJ,OAAO,GAIP;IACA,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAE1D,4FAA4F;IAC5F,MAAM,gBAAgB,GAAyB,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAA;IACzE,MAAM,QAAQ,GAAG,eAAe,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA,CAAC,gCAAgC;IAEvF,OAAO,CACN,8BAEC,eAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,aAEhE,KAAC,QAAQ,IACR,KAAK,EAAC,yBAAoB,EAC1B,MAAM,EAAC,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAClC,IAAI,EAAE,IAAI,GACT,EAGF,KAAC,gBAAgB,IAChB,KAAK,EAAC,aAAa,EACnB,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,QAAQ,EAAC,QAAQ,EACjB,GAAG,EAAC,KAAK,EACT,SAAS,EAAC,sBAAsB,GAC/B,EAGF,KAAC,gBAAgB,IAChB,KAAK,EAAC,OAAO,EACb,MAAM,EAAE,IAAI,CAAC,KAAK,EAClB,QAAQ,EAAC,OAAO,EAChB,GAAG,EAAC,KAAK,EACT,SAAS,EAAC,mBAAmB,GAC5B,EAGF,KAAC,WAAW,IAAC,MAAM,EAAE,IAAI,CAAC,KAAK,GAAI,IAC9B,EAGN,eAAK,SAAS,EAAC,YAAY,aAE1B,eAAK,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,aACnD,cACC,KAAK,EAAE;oCACN,OAAO,EAAE,MAAM;oCACf,UAAU,EAAE,QAAQ;oCACpB,cAAc,EAAE,eAAe;oCAC/B,OAAO,EAAE,gBAAgB;iCACzB,YAED,cAAK,SAAS,EAAC,YAAY,qCAA2B,GACjD,EACN,aAAI,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAI,EAC5D,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,KAAC,QAAQ,IAAC,OAAO,EAAC,oCAAoC,GAAG,CACzD,CAAC,CAAC,CAAC,CACH,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,YACpC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,YAAY,IAAe,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAApD,IAAI,CAAC,EAAE,CAAiD,CAC3E,CAAC,GACG,CACN,IACI,EAGN,eAAK,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,aACnD,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,gCAE1D,EACN,aAAI,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAI,EAC7D,KAAC,YAAY,IAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAI,IAClC,IACD,EAGN,eAAK,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAC5E,cACC,KAAK,EAAE;4BACN,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,eAAe;4BAC/B,OAAO,EAAE,gBAAgB;yBACzB,YAED,cAAK,SAAS,EAAC,YAAY,yCAA+B,GACrD,EACN,aAAI,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAI,EAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9D,KAAC,QAAQ,IAAC,OAAO,EAAC,oEAAoE,GAAG,CACzF,CAAC,CAAC,CAAC,CACH,8BACE,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,CACxC,KAAC,aAAa,IAAC,OAAO,EAAC,6DAAwD,GAAG,CAClF,EACD,iBAAO,SAAS,EAAC,KAAK,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAC7C,0BACC,yBACC,aAAI,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,kBAAQ,EACtC,iCAAc,EACd,iCAAc,IACV,GACE,EACR,0BACE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,cAAkB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAChD,aACC,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAElE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAC3B,EACL,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YAC3B,cACC,KAAK,EAAE;4DACN,UAAU,EAAE,GAAG;4DACf,KAAK,EAAE,YAAY;4DACnB,UAAU,EAAE,QAAQ;4DACpB,QAAQ,EAAE,QAAQ;4DAClB,YAAY,EAAE,UAAU;yDACxB,YAEA,IAAI,CAAC,KAAK,IAAI,YAAY,GACtB,GACF,EACL,aAAI,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAC7C,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAC3D,KAtBG,IAAI,CAAC,EAAE,CAuBX,CACL,CAAC,GACK,IACD,IACN,CACH,IACI,IACJ,CACH,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,+BAA+B;AAC/B,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,EACjB,KAAK,EACL,MAAM,EACN,KAAK,EACL,IAAI,GAMJ;IACA,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,CAAA;IACpD,OAAO,CACN,eAAK,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC3F,cAAK,SAAS,EAAC,QAAQ,YAAE,KAAK,GAAO,EACrC,cACC,KAAK,EAAE;oBACN,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,UAAU;oBACtB,cAAc,EAAE,eAAe;oBAC/B,GAAG,EAAE,EAAE;iBACP,YAED,cACC,SAAS,EAAC,YAAY,EACtB,KAAK,EAAE;wBACN,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,GAAG;wBACf,UAAU,EAAE,CAAC;wBACb,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY;wBAClD,UAAU,EAAE,QAAQ;qBACpB,YAEA,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GACjB,GACD,EACN,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,aACxF,MAAM,KAAK,SAAS,IAAI,CACxB,gBACC,KAAK,EAAE;4BACN,OAAO,EAAE,aAAa;4BACtB,UAAU,EAAE,QAAQ;4BACpB,GAAG,EAAE,CAAC;4BACN,QAAQ,EAAE,EAAE;4BACZ,UAAU,EAAE,GAAG;4BACf,KAAK,EAAE,cAAc;yBACrB,aAED,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,gBACxB,CACP,EACA,IAAI,IAAI,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAG,IAAI,GAAQ,IAC3E,IACD,CACN,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,oFAAoF;AACpF,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,EACzB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,SAAS,GAOT;IACA,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAExC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAI,CAAA;IAC/E,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,SAAS,GACd,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAK,SAAwB,CAAC,OAAO,CAAA;IAEzF,OAAO,CACN,KAAC,QAAQ,IACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,SAAoB,EAC/C,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAC5C,CACF,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,SAAS,WAAW,CAAC,EAAE,MAAM,EAAsD;IAClF,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAExC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAC,eAAe,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAC,mBAAmB,GAAG,CAAA;IAC/F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc,IAAI,IAAI,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAE1D,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAC,eAAe,EAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAI,CAAA;AACzF,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAC/B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAA;IAC3B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAA;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAA;AACrB,CAAC;AAED,8EAA8E;AAC9E,kEAAkE;AAClE,8EAA8E;AAE9E,MAAM,SAAS,GAGX;IACH,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;IAC3C,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;IAChD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CACvC,CAAA;AAED,SAAS,YAAY,CAAC,EACrB,IAAI,EACJ,OAAO,GAIP;IACA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,CACN,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;YACN,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;SAChB,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,CAAA;QAClD,CAAC,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;QACjD,CAAC,aAED,cACC,KAAK,EAAE;oBACN,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,YAAY,EAAE,CAAC;oBACf,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,cAAc;oBAC1B,MAAM,EAAE,yBAAyB;oBACjC,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,KAAK,EAAE,kBAAkB;iBACzB,YAED,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAI,GAC5D,EACN,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YACnC,cACC,KAAK,EAAE;wBACN,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,GAAG;wBACf,KAAK,EAAE,YAAY;wBACnB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,QAAQ;wBAClB,YAAY,EAAE,UAAU;qBACxB,YAEA,IAAI,CAAC,KAAK,IAAI,YAAY,GACtB,GACD,EACN,gBAAM,SAAS,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE,aACnC,eAAM,SAAS,EAAC,MAAM,GAAG,EACxB,IAAI,CAAC,KAAK,IACL,IACC,CACT,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,YAAY,CAAC,EAAE,MAAM,EAA6C;IAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,KAAC,QAAQ,IAAC,OAAO,EAAC,+DAA+D,GAAG,CAAA;IAC5F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IAExB,OAAO,CACN,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,YACvC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,KAAC,aAAa,IAAc,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAA7C,GAAG,CAAC,EAAE,CAA2C,CACrE,CAAC,GACG,CACN,CAAA;AACF,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAuC;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhE,OAAO,CACN,eACC,KAAK,EAAE;YACN,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,8BAA8B;SAC5D,aAED,KAAC,IAAI,IACJ,IAAI,EAAC,aAAa,EAClB,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAC5D,EACF,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aACnC,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,aACtE,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CACnB,8BACE,GAAG,EACJ,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,uBAAI,GAAG,CAAC,YAAY,cAAS,IAC/D,CACH,CAAC,CAAC,CAAC,IAAI,IACH,EACN,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAE,YAAG,IAAI,GAAO,IAC9E,IACD,CACN,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,EAAE,OAAO,EAAuB;IACjD,OAAO,CACN,cACC,KAAK,EAAE;YACN,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,kBAAkB;SACzB,YAEA,OAAO,GACH,CACN,CAAA;AACF,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,OAAO,EAAuB;IACtD,OAAO,CACN,eACC,KAAK,EAAE;YACN,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,kDAAkD;YAC9D,MAAM,EAAE,6DAA6D;YACrE,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,CAAC;SACN,aAED,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,EAC7B,OAAO,IACH,CACN,CAAA;AACF,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAChC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,cAAc,CAAA;IACpC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,gBAAgB,CAAA;IACtC,OAAO,cAAc,CAAA;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;IAC1C,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,UAAU,CAAA;IAChC,IAAI,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAA;IACvD,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;IAC1D,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC/D,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACd,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ContentView } from './content-view.js';
|
|
2
|
+
export interface EditorScreenProps {
|
|
3
|
+
docRef: NonNullable<ContentView['open']>;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function EditorScreen({ docRef, onClose }: EditorScreenProps): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=EditorScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/EditorScreen.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAMpD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,MAAM,IAAI,CAAA;CACnB;AA2BD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,iBAAiB,+BA4UlE"}
|