@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":"tweet-embed.d.ts","sourceRoot":"","sources":["../../../src/ui/editor/tweet-embed.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmB,IAAI,EAAE,MAAM,cAAc,CAAA;AAEpD,yDAAyD;AACzD,eAAO,MAAM,UAAU,gBAgDrB,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// src/ui/editor/tweet-embed.ts
|
|
2
|
+
// Pure Tiptap Node spec for the TweetEmbed custom node.
|
|
3
|
+
// Defines the schema (group, atom, attrs) + parseHTML/renderHTML.
|
|
4
|
+
// NEVER instantiates Editor or EditorView (browser-only).
|
|
5
|
+
// The node is serialized to/from a fenced directive (:::tweet) by
|
|
6
|
+
// src/ui/editor/serialize.ts; the HTML encoding is for Tiptap's own
|
|
7
|
+
// HTML clipboard pipeline when the editor IS running in the browser.
|
|
8
|
+
import { mergeAttributes, Node } from '@tiptap/core';
|
|
9
|
+
/** Custom Tiptap node for an embedded tweet / X post. */
|
|
10
|
+
export const TweetEmbed = Node.create({
|
|
11
|
+
name: 'tweetEmbed',
|
|
12
|
+
group: 'block',
|
|
13
|
+
atom: true,
|
|
14
|
+
addAttributes() {
|
|
15
|
+
return {
|
|
16
|
+
url: {
|
|
17
|
+
default: null,
|
|
18
|
+
parseHTML: (element) => element.getAttribute('data-tweet-url'),
|
|
19
|
+
renderHTML: (attributes) => ({
|
|
20
|
+
'data-tweet-url': attributes.url,
|
|
21
|
+
}),
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
parseHTML() {
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
tag: 'div[data-tweet]',
|
|
29
|
+
getAttrs: (element) => {
|
|
30
|
+
if (typeof element === 'string')
|
|
31
|
+
return {};
|
|
32
|
+
return {
|
|
33
|
+
url: element.getAttribute('data-tweet-url') || element.getAttribute('data-tweet'),
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
},
|
|
39
|
+
renderHTML({ node, HTMLAttributes, }) {
|
|
40
|
+
return [
|
|
41
|
+
'div',
|
|
42
|
+
mergeAttributes(HTMLAttributes, {
|
|
43
|
+
'data-tweet': '',
|
|
44
|
+
'data-tweet-url': node.attrs.url,
|
|
45
|
+
}),
|
|
46
|
+
];
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=tweet-embed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tweet-embed.js","sourceRoot":"","sources":["../../../src/ui/editor/tweet-embed.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,wDAAwD;AACxD,kEAAkE;AAClE,0DAA0D;AAC1D,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEpD,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,YAAY;IAElB,KAAK,EAAE,OAAO;IAEd,IAAI,EAAE,IAAI;IAEV,aAAa;QACZ,OAAO;YACN,GAAG,EAAE;gBACJ,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,CAAC,OAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBAC3E,UAAU,EAAE,CAAC,UAAmC,EAAE,EAAE,CAAC,CAAC;oBACrD,gBAAgB,EAAE,UAAU,CAAC,GAAG;iBAChC,CAAC;aACF;SACD,CAAA;IACF,CAAC;IAED,SAAS;QACR,OAAO;YACN;gBACC,GAAG,EAAE,iBAAiB;gBACtB,QAAQ,EAAE,CAAC,OAA6B,EAAE,EAAE;oBAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ;wBAAE,OAAO,EAAE,CAAA;oBAC1C,OAAO;wBACN,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;qBACjF,CAAA;gBACF,CAAC;aACD;SACD,CAAA;IACF,CAAC;IAED,UAAU,CAAC,EACV,IAAI,EACJ,cAAc,GAId;QACA,OAAO;YACN,KAAK;YACL,eAAe,CAAC,cAAc,EAAE;gBAC/B,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;aAChC,CAAC;SACF,CAAA;IACF,CAAC;CACD,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const ROUTES: readonly ["dashboard", "content", "calendar", "media", "analytics", "authors", "topics", "content-insights", "subscriptions", "social-share", "settings"];
|
|
2
|
+
export type Route = (typeof ROUTES)[number];
|
|
3
|
+
export declare function parseHash(hash: string): Route;
|
|
4
|
+
export declare function hashFor(route: Route): string;
|
|
5
|
+
//# sourceMappingURL=hash-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-router.d.ts","sourceRoot":"","sources":["../../src/ui/hash-router.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2JAYT,CAAA;AAEV,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAI3C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAI7C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE5C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/ui/hash-router.ts — pure hash-route helpers for the Masthead SPA. Astro
|
|
2
|
+
// owns the /admin path; the SPA owns the #/<route> hash (no History conflict).
|
|
3
|
+
export const ROUTES = [
|
|
4
|
+
'dashboard',
|
|
5
|
+
'content',
|
|
6
|
+
'calendar',
|
|
7
|
+
'media',
|
|
8
|
+
'analytics',
|
|
9
|
+
'authors',
|
|
10
|
+
'topics',
|
|
11
|
+
'content-insights',
|
|
12
|
+
'subscriptions',
|
|
13
|
+
'social-share',
|
|
14
|
+
'settings',
|
|
15
|
+
];
|
|
16
|
+
const DEFAULT = 'dashboard';
|
|
17
|
+
export function parseHash(hash) {
|
|
18
|
+
const raw = hash.replace(/^#\/?/, '').split('?')[0];
|
|
19
|
+
const root = raw.split('/')[0] || DEFAULT;
|
|
20
|
+
return ROUTES.includes(root) ? root : DEFAULT;
|
|
21
|
+
}
|
|
22
|
+
export function hashFor(route) {
|
|
23
|
+
return `#/${route}`;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=hash-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-router.js","sourceRoot":"","sources":["../../src/ui/hash-router.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,WAAW;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,WAAW;IACX,SAAS;IACT,QAAQ;IACR,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,UAAU;CACD,CAAA;AAIV,MAAM,OAAO,GAAU,WAAW,CAAA;AAElC,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAA;IACzC,OAAQ,MAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,OAAO,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAY;IACnC,OAAO,KAAK,KAAK,EAAE,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Masthead icon set — 1.6px line icons, 18px default.
|
|
3
|
+
* SVG path data ported from the Broadsheet design (icons.jsx).
|
|
4
|
+
* All icons use currentColor stroke so theme/accent CSS applies.
|
|
5
|
+
*/
|
|
6
|
+
/** Every icon name used across the shell (nav + topbar + site-switcher + palette). */
|
|
7
|
+
export type IconName = 'dashboard' | 'library' | 'calendar' | 'media' | 'chart' | 'users' | 'tag' | 'inbox' | 'share' | 'settings' | 'sidebar' | 'search' | 'sun' | 'moon' | 'bell' | 'plus' | 'chevDown' | 'chevRight' | 'chevLeft' | 'doc' | 'video' | 'mic' | 'mail' | 'image' | 'folder' | 'folderOpen' | 'layers' | 'globe' | 'flag' | 'bolt' | 'seo' | 'star' | 'bookmark' | 'edit' | 'copy' | 'trash' | 'link' | 'filter' | 'grid' | 'rows' | 'columns' | 'dots' | 'arrowUp' | 'arrowRight' | 'play' | 'pause' | 'waveform' | 'x' | 'check' | 'checkCircle' | 'clock' | 'sparkle' | 'wand' | 'eye' | 'desktop' | 'tablet' | 'mobile' | 'history' | 'upload' | 'download' | 'refresh' | 'target' | 'pin' | 'command';
|
|
8
|
+
/** SVG path data keyed by icon name. */
|
|
9
|
+
export declare const ICON_PATHS: Record<IconName, string>;
|
|
10
|
+
export interface IconProps {
|
|
11
|
+
name: IconName;
|
|
12
|
+
size?: number;
|
|
13
|
+
stroke?: number;
|
|
14
|
+
className?: string;
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Renders an inline SVG line icon from the Broadsheet design set.
|
|
19
|
+
* Uses currentColor stroke so it inherits text/accent colour from CSS.
|
|
20
|
+
* Defaults: 18px, 1.6px stroke, round caps/joins, aria-hidden.
|
|
21
|
+
*/
|
|
22
|
+
export declare function Icon({ name, size, stroke, className, style }: IconProps): import("react").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Broadsheet logo mark — folded masthead glyph from the design.
|
|
25
|
+
* Uses explicit colour (defaults to currentColor) so it works on
|
|
26
|
+
* any background without inheriting the wrong fill.
|
|
27
|
+
*/
|
|
28
|
+
export declare function BrandMark({ size, color, }: {
|
|
29
|
+
size?: number;
|
|
30
|
+
color?: string;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/ui/icons.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sFAAsF;AACtF,MAAM,MAAM,QAAQ,GAEjB,WAAW,GACX,SAAS,GACT,UAAU,GACV,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,OAAO,GACP,UAAU,GAEV,SAAS,GACT,QAAQ,GACR,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GAEN,UAAU,GACV,WAAW,GACX,UAAU,GAEV,KAAK,GACL,OAAO,GAEP,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,GACL,MAAM,GACN,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,GACN,SAAS,GACT,MAAM,GACN,SAAS,GACT,YAAY,GACZ,MAAM,GACN,OAAO,GACP,UAAU,GACV,GAAG,GACH,OAAO,GACP,aAAa,GACb,OAAO,GACP,SAAS,GACT,MAAM,GACN,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,UAAU,GACV,SAAS,GACT,QAAQ,GACR,KAAK,GACL,SAAS,CAAA;AAEZ,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAuE/C,CAAA;AAED,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,MAAY,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,+BAmBlF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACzB,IAAS,EACT,KAAsB,GACtB,EAAE;IACF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,+BAUA"}
|
package/dist/ui/icons.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/** SVG path data keyed by icon name. */
|
|
3
|
+
export const ICON_PATHS = {
|
|
4
|
+
dashboard: 'M3 3h7v7H3zM14 3h7v4h-7zM14 10h7v11h-7zM3 13h7v8H3z',
|
|
5
|
+
library: 'M4 4h16v4H4zM4 11h16M4 16h16M4 8v12M20 8v12',
|
|
6
|
+
doc: 'M6 2h8l4 4v16H6zM14 2v4h4',
|
|
7
|
+
video: 'M3 5h13v14H3zM16 9l5-3v12l-5-3z',
|
|
8
|
+
mic: 'M12 3a3 3 0 0 1 3 3v5a3 3 0 0 1-6 0V6a3 3 0 0 1 3-3zM6 11a6 6 0 0 0 12 0M12 17v4M9 21h6',
|
|
9
|
+
mail: 'M3 5h18v14H3zM3 6l9 7 9-7',
|
|
10
|
+
calendar: 'M4 5h16v16H4zM4 9h16M8 3v4M16 3v4M8 13h2M14 13h2M8 17h2',
|
|
11
|
+
media: 'M3 4h18v16H3zM3 15l5-5 4 4 3-3 6 6M9 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z',
|
|
12
|
+
chart: 'M4 20V10M10 20V4M16 20v-6M22 20H2',
|
|
13
|
+
users: 'M9 11a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7zM2 21a7 7 0 0 1 14 0M17 11a3 3 0 0 0 0-6M18 21a6 6 0 0 0-3-5.2',
|
|
14
|
+
tag: 'M3 3h8l10 10-8 8L3 11zM7.5 7.5h.01',
|
|
15
|
+
folder: 'M3 6h6l2 2h10v12H3zM3 6v14',
|
|
16
|
+
settings: 'M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6zM19.4 13a7.5 7.5 0 0 0 0-2l2-1.5-2-3.4-2.3 1a7.5 7.5 0 0 0-1.7-1l-.3-2.6h-4l-.3 2.6a7.5 7.5 0 0 0-1.7 1l-2.3-1-2 3.4L4.6 11a7.5 7.5 0 0 0 0 2l-2 1.5 2 3.4 2.3-1a7.5 7.5 0 0 0 1.7 1l.3 2.6h4l.3-2.6a7.5 7.5 0 0 0 1.7-1l2.3 1 2-3.4z',
|
|
17
|
+
plus: 'M12 5v14M5 12h14',
|
|
18
|
+
search: 'M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14zM20 20l-4-4',
|
|
19
|
+
bell: 'M18 9a6 6 0 0 0-12 0c0 7-3 8-3 8h18s-3-1-3-8M13.7 21a2 2 0 0 1-3.4 0',
|
|
20
|
+
chevDown: 'M6 9l6 6 6-6',
|
|
21
|
+
chevRight: 'M9 6l6 6-6 6',
|
|
22
|
+
chevLeft: 'M15 6l-6 6 6 6',
|
|
23
|
+
sidebar: 'M3 4h18v16H3zM9 4v16',
|
|
24
|
+
eye: 'M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12zM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z',
|
|
25
|
+
desktop: 'M3 4h18v12H3zM8 20h8M12 16v4',
|
|
26
|
+
tablet: 'M6 3h12v18H6zM11 18h2',
|
|
27
|
+
mobile: 'M8 3h8v18H8zM11 18h2',
|
|
28
|
+
sun: 'M12 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10zM12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4',
|
|
29
|
+
moon: 'M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z',
|
|
30
|
+
check: 'M5 12l5 5L20 6',
|
|
31
|
+
checkCircle: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM8 12l3 3 5-5',
|
|
32
|
+
clock: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 7v5l3 2',
|
|
33
|
+
sparkle: 'M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8zM5 4l.7 2 .8-2-.8.6zM19 17l.7 2 .8-2-.8.6z',
|
|
34
|
+
wand: 'M5 19l9-9M14 6l1.5-1.5M17 9l2-2M8.5 4.5L9 3M3 11l1.5.5M15 4l2 7 5 2-5 2-2 5-2-5-5-2 5-2z',
|
|
35
|
+
image: 'M3 4h18v16H3zM3 16l5-5 4 4 3-3 6 6M8.5 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z',
|
|
36
|
+
link: 'M9 15l6-6M10 6l1-1a4 4 0 0 1 6 6l-1 1M14 18l-1 1a4 4 0 0 1-6-6l1-1',
|
|
37
|
+
trash: 'M4 6h16M9 6V4h6v2M6 6l1 14h10l1-14M10 10v6M14 10v6',
|
|
38
|
+
history: 'M3 12a9 9 0 1 0 3-6.7L3 8M3 4v4h4M12 8v4l3 2',
|
|
39
|
+
upload: 'M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3',
|
|
40
|
+
download: 'M12 4v12M7 11l5 5 5-5M4 20h16',
|
|
41
|
+
filter: 'M3 5h18l-7 8v5l-4 2v-7z',
|
|
42
|
+
grid: 'M3 3h8v8H3zM13 3h8v8h-8zM3 13h8v8H3zM13 13h8v8h-8z',
|
|
43
|
+
rows: 'M3 5h18M3 12h18M3 19h18',
|
|
44
|
+
columns: 'M4 4h16v16H4zM10 4v16M16 4v16',
|
|
45
|
+
globe: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20',
|
|
46
|
+
flag: 'M5 21V4M5 4h11l-1.5 4L16 12H5',
|
|
47
|
+
bolt: 'M13 2L4 14h7l-1 8 9-12h-7z',
|
|
48
|
+
seo: 'M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14zM20 20l-4-4M8 11h6M11 8v6',
|
|
49
|
+
layers: 'M12 3l9 5-9 5-9-5zM3 13l9 5 9-5M3 17l9 5 9-5',
|
|
50
|
+
share: 'M16 6a3 3 0 1 0 0-.1zM8 12a3 3 0 1 0 0 .1zM16 18a3 3 0 1 0 0 .1zM10.5 10.5l5-3M10.5 13.5l5 3',
|
|
51
|
+
dots: 'M12 6a1 1 0 1 0 0-.1zM12 12a1 1 0 1 0 0-.1zM12 18a1 1 0 1 0 0-.1z',
|
|
52
|
+
arrowUp: 'M12 19V5M6 11l6-6 6 6',
|
|
53
|
+
arrowRight: 'M5 12h14M13 6l6 6-6 6',
|
|
54
|
+
play: 'M7 4l13 8-13 8z',
|
|
55
|
+
pause: 'M8 4h3v16H8zM13 4h3v16h-3z',
|
|
56
|
+
waveform: 'M3 12h2M7 8v8M11 4v16M15 7v10M19 10v4M22 12h-1',
|
|
57
|
+
x: 'M6 6l12 12M18 6L6 18',
|
|
58
|
+
bookmark: 'M6 3h12v18l-6-4-6 4z',
|
|
59
|
+
edit: 'M4 20h4L19 9l-4-4L4 16zM14 6l4 4',
|
|
60
|
+
copy: 'M9 9h11v11H9zM5 15H4V4h11v1',
|
|
61
|
+
star: 'M12 3l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 18l-5.9 3 1.2-6.5L2.5 9.9 9 9z',
|
|
62
|
+
folderOpen: 'M3 7h6l2 2h10M3 7v13h18l-2-9H7z',
|
|
63
|
+
command: 'M9 6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3z',
|
|
64
|
+
inbox: 'M3 13h5l2 3h4l2-3h5M3 13l3-9h12l3 9v7H3z',
|
|
65
|
+
target: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10zM12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',
|
|
66
|
+
pin: 'M12 21s7-6.5 7-12a7 7 0 1 0-14 0c0 5.5 7 12 7 12zM12 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z',
|
|
67
|
+
refresh: 'M3 12a9 9 0 0 1 15-6.7L21 8M21 3v5h-5M21 12a9 9 0 0 1-15 6.7L3 16M3 21v-5h5',
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Renders an inline SVG line icon from the Broadsheet design set.
|
|
71
|
+
* Uses currentColor stroke so it inherits text/accent colour from CSS.
|
|
72
|
+
* Defaults: 18px, 1.6px stroke, round caps/joins, aria-hidden.
|
|
73
|
+
*/
|
|
74
|
+
export function Icon({ name, size = 18, stroke = 1.6, className, style }) {
|
|
75
|
+
const d = ICON_PATHS[name] ?? ICON_PATHS.doc;
|
|
76
|
+
return (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: stroke, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", className: className, style: style, children: _jsx("path", { d: d }) }));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Broadsheet logo mark — folded masthead glyph from the design.
|
|
80
|
+
* Uses explicit colour (defaults to currentColor) so it works on
|
|
81
|
+
* any background without inheriting the wrong fill.
|
|
82
|
+
*/
|
|
83
|
+
export function BrandMark({ size = 18, color = 'currentColor', }) {
|
|
84
|
+
return (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [_jsx("path", { d: "M5 4h14v3H5z", fill: color }), _jsx("path", { d: "M5 9.5h9", stroke: color, strokeWidth: 1.7, strokeLinecap: "round" }), _jsx("path", { d: "M5 13h9", stroke: color, strokeWidth: 1.7, strokeLinecap: "round" }), _jsx("path", { d: "M5 16.5h6", stroke: color, strokeWidth: 1.7, strokeLinecap: "round" }), _jsx("path", { d: "M16.5 9.5H19V20l-1.25-1L16.5 20z", fill: color, opacity: 0.9 })] }));
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/ui/icons.tsx"],"names":[],"mappings":";AA8EA,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAA6B;IACnD,SAAS,EAAE,qDAAqD;IAChE,OAAO,EAAE,6CAA6C;IACtD,GAAG,EAAE,2BAA2B;IAChC,KAAK,EAAE,iCAAiC;IACxC,GAAG,EAAE,yFAAyF;IAC9F,IAAI,EAAE,2BAA2B;IACjC,QAAQ,EAAE,yDAAyD;IACnE,KAAK,EAAE,6EAA6E;IACpF,KAAK,EAAE,mCAAmC;IAC1C,KAAK,EACJ,0GAA0G;IAC3G,GAAG,EAAE,oCAAoC;IACzC,MAAM,EAAE,4BAA4B;IACpC,QAAQ,EACP,yQAAyQ;IAC1Q,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,iDAAiD;IACzD,IAAI,EAAE,sEAAsE;IAC5E,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,sBAAsB;IAC/B,GAAG,EAAE,gFAAgF;IACrF,OAAO,EAAE,8BAA8B;IACvC,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE,wIAAwI;IAC7I,IAAI,EAAE,8CAA8C;IACpD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,wDAAwD;IACrE,KAAK,EAAE,sDAAsD;IAC7D,OAAO,EACN,qGAAqG;IACtG,IAAI,EAAE,0FAA0F;IAChG,KAAK,EAAE,+EAA+E;IACtF,IAAI,EAAE,oEAAoE;IAC1E,KAAK,EAAE,oDAAoD;IAC3D,OAAO,EAAE,8CAA8C;IACvD,MAAM,EAAE,+DAA+D;IACvE,QAAQ,EAAE,+BAA+B;IACzC,MAAM,EAAE,yBAAyB;IACjC,IAAI,EAAE,oDAAoD;IAC1D,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,+BAA+B;IACxC,KAAK,EACJ,+FAA+F;IAChG,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,+DAA+D;IACpE,MAAM,EAAE,8CAA8C;IACtD,KAAK,EACJ,8FAA8F;IAC/F,IAAI,EAAE,mEAAmE;IACzE,OAAO,EAAE,uBAAuB;IAChC,UAAU,EAAE,uBAAuB;IACnC,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,4BAA4B;IACnC,QAAQ,EAAE,gDAAgD;IAC1D,CAAC,EAAE,sBAAsB;IACzB,QAAQ,EAAE,sBAAsB;IAChC,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,qEAAqE;IAC3E,UAAU,EAAE,iCAAiC;IAC7C,OAAO,EAAE,uEAAuE;IAChF,KAAK,EAAE,0CAA0C;IACjD,MAAM,EACL,mHAAmH;IACpH,GAAG,EAAE,sFAAsF;IAC3F,OAAO,EAAE,6EAA6E;CACtF,CAAA;AAUD;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,KAAK,EAAa;IAClF,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAA;IAC5C,OAAO,CACN,cACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,YAEZ,eAAM,CAAC,EAAE,CAAC,GAAI,GACT,CACN,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,EACzB,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,GAItB;IACA,OAAO,CACN,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,aACjF,eAAM,CAAC,EAAC,cAAc,EAAC,IAAI,EAAE,KAAK,GAAI,EACtC,eAAM,CAAC,EAAC,UAAU,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAC,OAAO,GAAG,EAC5E,eAAM,CAAC,EAAC,SAAS,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAC,OAAO,GAAG,EAC3E,eAAM,CAAC,EAAC,WAAW,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAC,OAAO,GAAG,EAC7E,eAAM,CAAC,EAAC,kCAAkC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,GAAI,IACnE,CACN,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface FieldProps {
|
|
2
|
+
label: string;
|
|
3
|
+
/** htmlFor ties the label to a specific input by id. Supply when the child
|
|
4
|
+
* is a single <input>/<select>/<textarea> — required by a11y rules. When
|
|
5
|
+
* the field wraps a custom control or a composite widget where no single
|
|
6
|
+
* id is appropriate, omit it and add an aria-label on the control itself. */
|
|
7
|
+
htmlFor?: string;
|
|
8
|
+
help?: string;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare function Field({ label, htmlFor, help, children }: FieldProps): React.ReactElement;
|
|
12
|
+
//# sourceMappingURL=Field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/ui/inspector/Field.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb;;;iFAG6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB;AAED,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC,YAAY,CAUxF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function Field({ label, htmlFor, help, children }) {
|
|
3
|
+
return (_jsxs("div", { style: fieldWrap, children: [_jsx("label", { htmlFor: htmlFor, className: "field-label", children: label }), children, help && _jsx("div", { className: "help", children: help })] }));
|
|
4
|
+
}
|
|
5
|
+
const fieldWrap = {
|
|
6
|
+
marginBottom: 14,
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../src/ui/inspector/Field.tsx"],"names":[],"mappings":";AAeA,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAc;IACnE,OAAO,CACN,eAAK,KAAK,EAAE,SAAS,aACpB,gBAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,aAAa,YAC9C,KAAK,GACC,EACP,QAAQ,EACR,IAAI,IAAI,cAAK,SAAS,EAAC,MAAM,YAAE,IAAI,GAAO,IACtC,CACN,CAAA;AACF,CAAC;AAED,MAAM,SAAS,GAAwB;IACtC,YAAY,EAAE,EAAE;CAChB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface FoundryTabProps {
|
|
2
|
+
docId: string;
|
|
3
|
+
/** Content type — must be 'video' or 'podcast' (enforced by visibleTabs). */
|
|
4
|
+
contentType: 'video' | 'podcast' | string;
|
|
5
|
+
/** Called after a transcript edit or dispatch so the parent can refresh. */
|
|
6
|
+
onChanged?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function FoundryTab({ docId, contentType, onChanged }: FoundryTabProps): React.ReactElement;
|
|
9
|
+
//# sourceMappingURL=FoundryTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FoundryTab.d.ts","sourceRoot":"","sources":["../../../src/ui/inspector/FoundryTab.tsx"],"names":[],"mappings":"AAyCA,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACzC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAiBD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAySjG"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// src/ui/inspector/FoundryTab.tsx — Foundry inspector tab (bead-08).
|
|
3
|
+
//
|
|
4
|
+
// Only rendered for video/podcast content types (gated by visibleTabs).
|
|
5
|
+
// Sections:
|
|
6
|
+
// - Pipeline status: ordered stage list from processingStages() with
|
|
7
|
+
// done/active/pending indicators + a "Dispatch to Foundry" / "Re-run" button.
|
|
8
|
+
// - Thumbnail / cover: preview block; "Pick best frame" is P4-disabled.
|
|
9
|
+
// - Transcript: read-only view of the auto-generated transcript (from the
|
|
10
|
+
// content payload) with an inline "Edit transcript" textarea that PATCHes
|
|
11
|
+
// the transcript field. Transcript *generation* is driven by the callback
|
|
12
|
+
// pipeline, NOT an AI button.
|
|
13
|
+
//
|
|
14
|
+
// Polling: while processing_state is mid-flight (working pill state), a
|
|
15
|
+
// lightweight poll on GET /admin/api/content/:id re-fetches the processing
|
|
16
|
+
// columns every POLL_INTERVAL_MS.
|
|
17
|
+
//
|
|
18
|
+
// Compile-gated (tsc, jsx: react-jsx). No vitest — pure helpers (processingStages,
|
|
19
|
+
// foundryPillState) are tested in foundry-stages.test.ts.
|
|
20
|
+
//
|
|
21
|
+
// SCOPE GUARD (bead-08): the dispatch call goes to the injected FoundryDispatch
|
|
22
|
+
// provider via POST /content/:id?action=dispatch-to-foundry. NO real Foundry
|
|
23
|
+
// capability slug or media-compute infra in P3; that is the-foundry #558.
|
|
24
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
25
|
+
import { Icon } from '../icons.js';
|
|
26
|
+
import { foundryPillState, processingStages } from './foundry-stages.js';
|
|
27
|
+
import { patchContent, runAction } from './inspector-data.js';
|
|
28
|
+
import { Section } from './Section.js';
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Constants
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
/** Polling interval while the pipeline is in a mid-flight state. */
|
|
33
|
+
const POLL_INTERVAL_MS = 5_000;
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// FoundryTab
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
export function FoundryTab({ docId, contentType, onChanged }) {
|
|
38
|
+
const [processing, setProcessing] = useState({
|
|
39
|
+
processingState: 'pending',
|
|
40
|
+
processingError: null,
|
|
41
|
+
transcriptUrl: null,
|
|
42
|
+
hlsPosterUrl: null,
|
|
43
|
+
});
|
|
44
|
+
const [transcript, setTranscript] = useState(null);
|
|
45
|
+
const [editingTranscript, setEditingTranscript] = useState(false);
|
|
46
|
+
const [transcriptDraft, setTranscriptDraft] = useState('');
|
|
47
|
+
const [savingTranscript, setSavingTranscript] = useState(false);
|
|
48
|
+
const [dispatching, setDispatching] = useState(false);
|
|
49
|
+
const [dispatchError, setDispatchError] = useState(null);
|
|
50
|
+
const [loading, setLoading] = useState(true);
|
|
51
|
+
const pollRef = useRef(null);
|
|
52
|
+
// Fetch the current content item to read processing fields.
|
|
53
|
+
const fetchStatus = useCallback(async () => {
|
|
54
|
+
try {
|
|
55
|
+
const res = await fetch(`/admin/api/content/${docId}`);
|
|
56
|
+
if (!res.ok)
|
|
57
|
+
return;
|
|
58
|
+
const data = (await res.json());
|
|
59
|
+
const content = data.content ?? {};
|
|
60
|
+
setProcessing({
|
|
61
|
+
processingState: (content.processing_state ?? 'pending'),
|
|
62
|
+
processingError: content.processing_error ?? null,
|
|
63
|
+
transcriptUrl: content.transcript_url ?? null,
|
|
64
|
+
hlsPosterUrl: content.hls_poster_url ?? null,
|
|
65
|
+
});
|
|
66
|
+
// Transcript lives in the content sub-table.
|
|
67
|
+
const tx = content?.transcript ?? content?.script ?? null;
|
|
68
|
+
setTranscript(tx);
|
|
69
|
+
if (!editingTranscript) {
|
|
70
|
+
setTranscriptDraft(tx ?? '');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// non-fatal
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
setLoading(false);
|
|
78
|
+
}
|
|
79
|
+
}, [docId, editingTranscript]);
|
|
80
|
+
// Initial fetch.
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
void fetchStatus();
|
|
83
|
+
}, [fetchStatus]);
|
|
84
|
+
// Polling while mid-flight.
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
const pill = foundryPillState(processing.processingState);
|
|
87
|
+
if (pill === 'working' && processing.processingState !== 'pending') {
|
|
88
|
+
pollRef.current = setTimeout(() => void fetchStatus(), POLL_INTERVAL_MS);
|
|
89
|
+
}
|
|
90
|
+
return () => {
|
|
91
|
+
if (pollRef.current !== null) {
|
|
92
|
+
clearTimeout(pollRef.current);
|
|
93
|
+
pollRef.current = null;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}, [processing.processingState, fetchStatus]);
|
|
97
|
+
// Dispatch to Foundry.
|
|
98
|
+
const handleDispatch = useCallback(async () => {
|
|
99
|
+
setDispatching(true);
|
|
100
|
+
setDispatchError(null);
|
|
101
|
+
try {
|
|
102
|
+
await runAction(docId, 'dispatch-to-foundry');
|
|
103
|
+
await fetchStatus();
|
|
104
|
+
onChanged?.();
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
setDispatchError(e instanceof Error ? e.message : 'Dispatch failed');
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
setDispatching(false);
|
|
111
|
+
}
|
|
112
|
+
}, [docId, fetchStatus, onChanged]);
|
|
113
|
+
// Save edited transcript.
|
|
114
|
+
const handleSaveTranscript = useCallback(async () => {
|
|
115
|
+
setSavingTranscript(true);
|
|
116
|
+
try {
|
|
117
|
+
// PATCH the transcript field via the content update route.
|
|
118
|
+
// For video: the column is video_content.transcript (via PATCH { content: { transcript } }).
|
|
119
|
+
// For podcast: same via podcast_content.script or transcript field.
|
|
120
|
+
await patchContent(docId, { content: { transcript: transcriptDraft } });
|
|
121
|
+
setTranscript(transcriptDraft);
|
|
122
|
+
setEditingTranscript(false);
|
|
123
|
+
onChanged?.();
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// non-fatal
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
setSavingTranscript(false);
|
|
130
|
+
}
|
|
131
|
+
}, [docId, transcriptDraft, onChanged]);
|
|
132
|
+
// -------------------------------------------------------------------------
|
|
133
|
+
// Derived state
|
|
134
|
+
// -------------------------------------------------------------------------
|
|
135
|
+
const pillState = foundryPillState(processing.processingState);
|
|
136
|
+
const stages = processingStages(processing.processingState, contentType);
|
|
137
|
+
const isWorking = pillState === 'working' && processing.processingState !== 'pending';
|
|
138
|
+
const canDispatch = !dispatching && !isWorking;
|
|
139
|
+
const dispatchLabel = processing.processingState === 'pending' || processing.processingState === 'failed'
|
|
140
|
+
? processing.processingState === 'failed'
|
|
141
|
+
? 'Re-run pipeline'
|
|
142
|
+
: 'Dispatch to Foundry'
|
|
143
|
+
: pillState === 'ready'
|
|
144
|
+
? 'Re-run pipeline'
|
|
145
|
+
: 'Processing…';
|
|
146
|
+
// -------------------------------------------------------------------------
|
|
147
|
+
// Render
|
|
148
|
+
// -------------------------------------------------------------------------
|
|
149
|
+
if (loading) {
|
|
150
|
+
return (_jsx("div", { style: placeholderWrap, children: _jsx("span", { style: mutedText, children: "Loading pipeline status\u2026" }) }));
|
|
151
|
+
}
|
|
152
|
+
return (_jsxs("div", { children: [_jsxs(Section, { title: "Pipeline", icon: "bolt", children: [_jsxs("div", { style: headerRow, children: [_jsx(StatusPill, { pill: pillState, state: processing.processingState }), _jsx("button", { type: "button", className: "btn primary sm", disabled: !canDispatch, style: { opacity: canDispatch ? 1 : 0.6 }, onClick: () => void handleDispatch(), children: dispatching ? (_jsx("span", { children: "Dispatching\u2026" })) : (_jsxs(_Fragment, { children: [_jsx(Icon, { name: "upload", size: 14 }), dispatchLabel] })) })] }), dispatchError && _jsx("p", { style: errorText, children: dispatchError }), _jsx("ul", { style: stageList, children: stages.map((stage, idx) => (
|
|
153
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: stable ordered pipeline stages
|
|
154
|
+
_jsxs("li", { style: stageItem, children: [_jsx(StageIcon, { done: stage.done, active: stage.active, error: stage.error }), _jsx("span", { style: {
|
|
155
|
+
...stageLabel,
|
|
156
|
+
fontWeight: stage.active ? 700 : 400,
|
|
157
|
+
color: stage.active
|
|
158
|
+
? 'var(--ink)'
|
|
159
|
+
: stage.done
|
|
160
|
+
? 'var(--ink-muted)'
|
|
161
|
+
: 'var(--ink-faint)',
|
|
162
|
+
}, children: stage.label }), _jsx("span", { style: stageEstimate, children: stage.estimate }), stage.active && isWorking && _jsx(SpinnerDot, {})] }, idx))) }), isWorking && (_jsx("div", { style: progressTrack, children: _jsx("div", { className: "skeleton-shimmer", style: progressFill }) })), processing.processingError && (_jsxs("p", { style: errorText, children: [_jsx(Icon, { name: "x", size: 12, style: { verticalAlign: 'middle', marginRight: 4 } }), processing.processingError] }))] }), _jsxs(Section, { title: "Thumbnail / cover", icon: "image", defaultOpen: false, children: [processing.hlsPosterUrl ? (_jsx("img", { src: processing.hlsPosterUrl, alt: "Video poster", style: thumbnailImg })) : (_jsxs("div", { style: thumbnailEmpty, children: [_jsx(Icon, { name: "image", size: 20, style: { color: 'var(--ink-faint)' } }), _jsx("span", { style: mutedText, children: "No thumbnail yet" })] })), _jsxs("button", { type: "button", disabled: true, title: "AI frame pick arrives in P4", className: "btn sm", style: { width: '100%', opacity: 0.55, cursor: 'not-allowed' }, children: [_jsx(Icon, { name: "sparkle", size: 14 }), "Pick best frame", _jsx("span", { style: p4Badge, children: "P4" })] })] }), _jsxs(Section, { title: "Transcript", icon: "history", defaultOpen: processing.processingState === 'ready', children: [processing.processingState === 'pending' && (_jsx("p", { style: mutedText, children: "Dispatch the pipeline to generate a transcript." })), processing.processingState !== 'pending' && !transcript && !editingTranscript && (_jsx("p", { style: mutedText, children: isWorking
|
|
163
|
+
? 'Transcript will appear here once the pipeline completes.'
|
|
164
|
+
: 'No transcript available.' })), transcript && !editingTranscript && (_jsxs(_Fragment, { children: [_jsx("div", { style: transcriptDisplay, children: transcript }), _jsxs("button", { type: "button", className: "btn sm", style: { width: '100%' }, onClick: () => {
|
|
165
|
+
setTranscriptDraft(transcript);
|
|
166
|
+
setEditingTranscript(true);
|
|
167
|
+
}, children: [_jsx(Icon, { name: "edit", size: 14 }), "Edit transcript"] })] })), editingTranscript && (_jsxs("div", { style: editBlock, children: [_jsx("textarea", { className: "textarea", style: { fontSize: 12, lineHeight: 1.6 }, value: transcriptDraft, onChange: (e) => setTranscriptDraft(e.currentTarget.value), rows: 10, "aria-label": "Transcript editor" }), _jsxs("div", { style: editActions, children: [_jsx("button", { type: "button", className: "btn primary sm", disabled: savingTranscript, onClick: () => void handleSaveTranscript(), children: savingTranscript ? 'Saving…' : 'Save transcript' }), _jsx("button", { type: "button", className: "btn ghost sm", onClick: () => {
|
|
168
|
+
setEditingTranscript(false);
|
|
169
|
+
setTranscriptDraft(transcript ?? '');
|
|
170
|
+
}, children: "Cancel" })] })] }))] })] }));
|
|
171
|
+
}
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// StatusPill — pill for working / ready / failed
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
function StatusPill({ pill, state, }) {
|
|
176
|
+
const label = pill === 'ready'
|
|
177
|
+
? 'Ready'
|
|
178
|
+
: pill === 'failed'
|
|
179
|
+
? 'Failed'
|
|
180
|
+
: state === 'pending'
|
|
181
|
+
? 'Not dispatched'
|
|
182
|
+
: state === 'queued'
|
|
183
|
+
? 'Queued'
|
|
184
|
+
: state === 'fetching'
|
|
185
|
+
? 'Fetching source'
|
|
186
|
+
: state === 'transcribing'
|
|
187
|
+
? 'Transcribing'
|
|
188
|
+
: 'Transcoding';
|
|
189
|
+
// Map pipeline pill state onto the broadsheet status-pill vocabulary:
|
|
190
|
+
// ready→published (green), failed→review (amber/red idiom), working→processing.
|
|
191
|
+
const cls = pill === 'ready' ? 'pill published' : pill === 'failed' ? 'pill review' : 'pill processing';
|
|
192
|
+
return (_jsxs("span", { className: cls, children: [_jsx("span", { className: "pdot" }), label] }));
|
|
193
|
+
}
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
// StageIcon — checkmark / spinner / error indicator
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
function StageIcon({ done, active, error, }) {
|
|
198
|
+
// Broadsheet idiom: a tinted status disc holding a check / refresh / x glyph.
|
|
199
|
+
if (error) {
|
|
200
|
+
return (_jsx("span", { style: stageDisc('var(--red-tint)', 'var(--red)'), children: _jsx(Icon, { name: "x", size: 11 }) }));
|
|
201
|
+
}
|
|
202
|
+
if (done) {
|
|
203
|
+
return (_jsx("span", { style: stageDisc('var(--green-tint)', 'var(--green)'), children: _jsx(Icon, { name: "check", size: 11 }) }));
|
|
204
|
+
}
|
|
205
|
+
if (active) {
|
|
206
|
+
return (_jsx("span", { style: stageDisc('var(--amber-tint)', 'var(--amber)'), children: _jsx(Icon, { name: "refresh", size: 11 }) }));
|
|
207
|
+
}
|
|
208
|
+
return _jsx("span", { style: pendingDot });
|
|
209
|
+
}
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
211
|
+
// SpinnerDot — animated inline "working" indicator
|
|
212
|
+
// ---------------------------------------------------------------------------
|
|
213
|
+
function SpinnerDot() {
|
|
214
|
+
return _jsx("span", { style: spinnerDot, children: "\u2026" });
|
|
215
|
+
}
|
|
216
|
+
// ---------------------------------------------------------------------------
|
|
217
|
+
// Styles
|
|
218
|
+
// ---------------------------------------------------------------------------
|
|
219
|
+
const placeholderWrap = {
|
|
220
|
+
display: 'flex',
|
|
221
|
+
flexDirection: 'column',
|
|
222
|
+
alignItems: 'center',
|
|
223
|
+
justifyContent: 'center',
|
|
224
|
+
padding: 32,
|
|
225
|
+
textAlign: 'center',
|
|
226
|
+
gap: 8,
|
|
227
|
+
opacity: 0.75,
|
|
228
|
+
};
|
|
229
|
+
const mutedText = {
|
|
230
|
+
fontSize: 12,
|
|
231
|
+
color: 'var(--ink-faint)',
|
|
232
|
+
marginBottom: 6,
|
|
233
|
+
};
|
|
234
|
+
const headerRow = {
|
|
235
|
+
display: 'flex',
|
|
236
|
+
alignItems: 'center',
|
|
237
|
+
justifyContent: 'space-between',
|
|
238
|
+
gap: 10,
|
|
239
|
+
marginBottom: 12,
|
|
240
|
+
};
|
|
241
|
+
function stageDisc(bg, fg) {
|
|
242
|
+
return {
|
|
243
|
+
width: 18,
|
|
244
|
+
height: 18,
|
|
245
|
+
borderRadius: '50%',
|
|
246
|
+
flex: 'none',
|
|
247
|
+
display: 'grid',
|
|
248
|
+
placeItems: 'center',
|
|
249
|
+
background: bg,
|
|
250
|
+
color: fg,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
const progressTrack = {
|
|
254
|
+
height: 5,
|
|
255
|
+
background: 'var(--hover)',
|
|
256
|
+
borderRadius: 3,
|
|
257
|
+
overflow: 'hidden',
|
|
258
|
+
marginTop: 8,
|
|
259
|
+
};
|
|
260
|
+
const progressFill = {
|
|
261
|
+
width: '100%',
|
|
262
|
+
height: '100%',
|
|
263
|
+
background: 'var(--gold)',
|
|
264
|
+
};
|
|
265
|
+
const errorText = {
|
|
266
|
+
fontSize: 11.5,
|
|
267
|
+
color: 'var(--red, #ef4444)',
|
|
268
|
+
marginTop: 6,
|
|
269
|
+
marginBottom: 0,
|
|
270
|
+
};
|
|
271
|
+
const stageList = {
|
|
272
|
+
listStyle: 'none',
|
|
273
|
+
margin: 0,
|
|
274
|
+
padding: 0,
|
|
275
|
+
display: 'flex',
|
|
276
|
+
flexDirection: 'column',
|
|
277
|
+
gap: 6,
|
|
278
|
+
};
|
|
279
|
+
const stageItem = {
|
|
280
|
+
display: 'flex',
|
|
281
|
+
alignItems: 'center',
|
|
282
|
+
gap: 8,
|
|
283
|
+
};
|
|
284
|
+
const stageLabel = {
|
|
285
|
+
fontSize: 12.5,
|
|
286
|
+
transition: 'color .15s',
|
|
287
|
+
flex: 1,
|
|
288
|
+
minWidth: 0,
|
|
289
|
+
};
|
|
290
|
+
const stageEstimate = {
|
|
291
|
+
fontSize: 11,
|
|
292
|
+
color: 'var(--ink-faint)',
|
|
293
|
+
fontFamily: 'var(--mono)',
|
|
294
|
+
flex: 'none',
|
|
295
|
+
};
|
|
296
|
+
const pendingDot = {
|
|
297
|
+
display: 'inline-block',
|
|
298
|
+
width: 18,
|
|
299
|
+
height: 18,
|
|
300
|
+
borderRadius: '50%',
|
|
301
|
+
background: 'var(--hover)',
|
|
302
|
+
border: '1px solid var(--border)',
|
|
303
|
+
flex: 'none',
|
|
304
|
+
};
|
|
305
|
+
const spinnerDot = {
|
|
306
|
+
fontSize: 14,
|
|
307
|
+
color: 'var(--accent, #6366f1)',
|
|
308
|
+
letterSpacing: 2,
|
|
309
|
+
marginLeft: 2,
|
|
310
|
+
};
|
|
311
|
+
const thumbnailImg = {
|
|
312
|
+
width: '100%',
|
|
313
|
+
aspectRatio: '16/9',
|
|
314
|
+
objectFit: 'cover',
|
|
315
|
+
borderRadius: 6,
|
|
316
|
+
marginBottom: 8,
|
|
317
|
+
background: 'var(--field, #f5f5f5)',
|
|
318
|
+
};
|
|
319
|
+
const thumbnailEmpty = {
|
|
320
|
+
display: 'flex',
|
|
321
|
+
flexDirection: 'column',
|
|
322
|
+
alignItems: 'center',
|
|
323
|
+
justifyContent: 'center',
|
|
324
|
+
height: 80,
|
|
325
|
+
borderRadius: 6,
|
|
326
|
+
border: '1px dashed var(--border)',
|
|
327
|
+
marginBottom: 8,
|
|
328
|
+
gap: 6,
|
|
329
|
+
};
|
|
330
|
+
const p4Badge = {
|
|
331
|
+
fontFamily: 'var(--mono)',
|
|
332
|
+
fontSize: 9,
|
|
333
|
+
fontWeight: 600,
|
|
334
|
+
background: 'var(--amber-tint)',
|
|
335
|
+
color: 'var(--amber)',
|
|
336
|
+
padding: '1px 4px',
|
|
337
|
+
borderRadius: 4,
|
|
338
|
+
marginLeft: 2,
|
|
339
|
+
};
|
|
340
|
+
const transcriptDisplay = {
|
|
341
|
+
fontSize: 12,
|
|
342
|
+
lineHeight: 1.6,
|
|
343
|
+
color: 'var(--ink)',
|
|
344
|
+
background: 'var(--field, #f5f5f5)',
|
|
345
|
+
borderRadius: 6,
|
|
346
|
+
padding: '10px 12px',
|
|
347
|
+
maxHeight: 180,
|
|
348
|
+
overflowY: 'auto',
|
|
349
|
+
marginBottom: 8,
|
|
350
|
+
whiteSpace: 'pre-wrap',
|
|
351
|
+
wordBreak: 'break-word',
|
|
352
|
+
};
|
|
353
|
+
const editBlock = {
|
|
354
|
+
display: 'flex',
|
|
355
|
+
flexDirection: 'column',
|
|
356
|
+
gap: 8,
|
|
357
|
+
};
|
|
358
|
+
const editActions = {
|
|
359
|
+
display: 'flex',
|
|
360
|
+
gap: 6,
|
|
361
|
+
};
|
|
362
|
+
//# sourceMappingURL=FoundryTab.js.map
|