noecosystem-design 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/.editorconfig +12 -0
- package/.github/CODEOWNERS +10 -0
- package/.github/dependabot.yml +12 -0
- package/.github/pull_request_template.md +17 -0
- package/.github/workflows/ci.yml +173 -0
- package/.github/workflows/security.yml +40 -0
- package/.mcp.json +8 -0
- package/.node-version +1 -0
- package/AGENTS.md +62 -0
- package/CONTRIBUTING.md +9 -0
- package/README.md +48 -0
- package/SECURITY.md +7 -0
- package/apps/showcase/index.html +28 -0
- package/apps/showcase/package.json +30 -0
- package/apps/showcase/src/app.css +8 -0
- package/apps/showcase/src/app.tsx +10 -0
- package/apps/showcase/src/catalog/agent-composer-preview.tsx +17 -0
- package/apps/showcase/src/catalog/catalog-index.tsx +2676 -0
- package/apps/showcase/src/catalog/catalog-shell.browser.test.tsx +73 -0
- package/apps/showcase/src/catalog/catalog-shell.tsx +506 -0
- package/apps/showcase/src/main.tsx +17 -0
- package/apps/showcase/tsconfig.json +11 -0
- package/apps/showcase/vite.config.ts +15 -0
- package/apps/storybook/.storybook/main.ts +21 -0
- package/apps/storybook/.storybook/preview.tsx +87 -0
- package/apps/storybook/.storybook/vitest.setup.ts +26 -0
- package/apps/storybook/README.md +5 -0
- package/apps/storybook/package.json +31 -0
- package/apps/storybook/stories/AgentStates.stories.tsx +72 -0
- package/apps/storybook/stories/Bidi.stories.tsx +31 -0
- package/apps/storybook/stories/Button.stories.tsx +19 -0
- package/apps/storybook/stories/Surfaces.stories.tsx +28 -0
- package/apps/storybook/stories/catalog/about-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/activity-feed.stories.tsx +50 -0
- package/apps/storybook/stories/catalog/activity-gauge.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/agent-composer.stories.tsx +49 -0
- package/apps/storybook/stories/catalog/agent-message.stories.tsx +37 -0
- package/apps/storybook/stories/catalog/agent-plan.stories.tsx +35 -0
- package/apps/storybook/stories/catalog/agent-workspace.stories.tsx +60 -0
- package/apps/storybook/stories/catalog/alert.stories.tsx +41 -0
- package/apps/storybook/stories/catalog/app-frame.stories.tsx +47 -0
- package/apps/storybook/stories/catalog/approval-request.stories.tsx +30 -0
- package/apps/storybook/stories/catalog/avatar.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/badge-group.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/badge.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/banner.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/bidi-text.stories.tsx +47 -0
- package/apps/storybook/stories/catalog/blog-index-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/blog-post-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/blog-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/bottom-navigation.stories.tsx +27 -0
- package/apps/storybook/stories/catalog/button-group.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/button.stories.tsx +27 -0
- package/apps/storybook/stories/catalog/calendar.stories.tsx +47 -0
- package/apps/storybook/stories/catalog/card.stories.tsx +40 -0
- package/apps/storybook/stories/catalog/careers-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/carousel.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/chart-frame.stories.tsx +34 -0
- package/apps/storybook/stories/catalog/chart.stories.tsx +43 -0
- package/apps/storybook/stories/catalog/checkbox.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/code-and-terminal.stories.tsx +39 -0
- package/apps/storybook/stories/catalog/color-picker.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/command-menu.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/contact-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/contact-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/content-divider.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/content-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/context-menu.stories.tsx +66 -0
- package/apps/storybook/stories/catalog/credit-card.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/cta-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/dashboard-01.stories.tsx +28 -0
- package/apps/storybook/stories/catalog/dashboard-02.stories.tsx +28 -0
- package/apps/storybook/stories/catalog/dashboard-shell.stories.tsx +65 -0
- package/apps/storybook/stories/catalog/data-list.stories.tsx +37 -0
- package/apps/storybook/stories/catalog/data-table.stories.tsx +51 -0
- package/apps/storybook/stories/catalog/date-picker.stories.tsx +31 -0
- package/apps/storybook/stories/catalog/dialog.stories.tsx +68 -0
- package/apps/storybook/stories/catalog/direction-provider.stories.tsx +36 -0
- package/apps/storybook/stories/catalog/drawer.stories.tsx +58 -0
- package/apps/storybook/stories/catalog/dropdown.stories.tsx +67 -0
- package/apps/storybook/stories/catalog/email-template.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/empty-state.stories.tsx +19 -0
- package/apps/storybook/stories/catalog/error-state.stories.tsx +19 -0
- package/apps/storybook/stories/catalog/fab.stories.tsx +22 -0
- package/apps/storybook/stories/catalog/faq-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/faq-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/feature-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/featured-icon.stories.tsx +45 -0
- package/apps/storybook/stories/catalog/field.stories.tsx +35 -0
- package/apps/storybook/stories/catalog/file-uploader.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/filter-bar.stories.tsx +33 -0
- package/apps/storybook/stories/catalog/footer.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/forgot-password-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/gradient-picker.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/header-navigation.stories.tsx +46 -0
- package/apps/storybook/stories/catalog/hero-header.stories.tsx +36 -0
- package/apps/storybook/stories/catalog/icon-system.stories.tsx +48 -0
- package/apps/storybook/stories/catalog/illustration.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/image-picker.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/informational-page-01.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/informational-page-02.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/inline-cta.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/input.stories.tsx +21 -0
- package/apps/storybook/stories/catalog/landing-page.stories.tsx +28 -0
- package/apps/storybook/stories/catalog/legal-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/login-page.stories.tsx +42 -0
- package/apps/storybook/stories/catalog/marketing-404-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/marketing-header.stories.tsx +35 -0
- package/apps/storybook/stories/catalog/menu.stories.tsx +46 -0
- package/apps/storybook/stories/catalog/messaging.stories.tsx +33 -0
- package/apps/storybook/stories/catalog/metric-card.stories.tsx +20 -0
- package/apps/storybook/stories/catalog/metrics-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/mobile-screen.stories.tsx +56 -0
- package/apps/storybook/stories/catalog/multi-select.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/newsletter.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/not-found.stories.tsx +30 -0
- package/apps/storybook/stories/catalog/notification.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/page-header.stories.tsx +37 -0
- package/apps/storybook/stories/catalog/pagination.stories.tsx +27 -0
- package/apps/storybook/stories/catalog/pie-chart.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/pricing-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/pricing-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/progress-indicator.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/progress-steps.stories.tsx +33 -0
- package/apps/storybook/stories/catalog/qr-code.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/radar-chart.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/radio-group.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/rating.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/rich-text-editor.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/run-inspector.stories.tsx +23 -0
- package/apps/storybook/stories/catalog/section-footer.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/section-header.stories.tsx +31 -0
- package/apps/storybook/stories/catalog/select.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/settings-01.stories.tsx +24 -0
- package/apps/storybook/stories/catalog/settings-02.stories.tsx +24 -0
- package/apps/storybook/stories/catalog/settings-page.stories.tsx +48 -0
- package/apps/storybook/stories/catalog/sidebar-navigation.stories.tsx +40 -0
- package/apps/storybook/stories/catalog/sign-in-form.stories.tsx +28 -0
- package/apps/storybook/stories/catalog/sign-up-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/skeleton.stories.tsx +21 -0
- package/apps/storybook/stories/catalog/slider.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/social-button.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/social-proof.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/spinner.stories.tsx +15 -0
- package/apps/storybook/stories/catalog/store-button.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/tabs.stories.tsx +38 -0
- package/apps/storybook/stories/catalog/tags.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/team-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/team-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/testimonial-section.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/textarea.stories.tsx +22 -0
- package/apps/storybook/stories/catalog/toggle.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/tool-call.stories.tsx +40 -0
- package/apps/storybook/stories/catalog/tooltip.stories.tsx +30 -0
- package/apps/storybook/stories/catalog/tree-view.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/utility-button.stories.tsx +60 -0
- package/apps/storybook/stories/catalog/verification-code.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/verification-page.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/video-player.stories.tsx +18 -0
- package/apps/storybook/stories/catalog/workflow-canvas.stories.tsx +45 -0
- package/apps/storybook/stories/catalog/workflow-node.stories.tsx +24 -0
- package/apps/storybook/vitest.config.ts +39 -0
- package/apps/web/README.md +13 -0
- package/apps/web/app.js +483 -0
- package/apps/web/favicon.svg +6 -0
- package/apps/web/index.html +205 -0
- package/apps/web/styles.css +1823 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/README-FIRST.txt +20 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/SHA256SUMS.txt +11 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-delivery-metadata.json +25 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system-evidence.zip +0 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system-execution-report.md +60 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system-manifest.json +106 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system-source.tar.gz +0 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system-source.zip +0 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system.bundle +0 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-evidence-index.html +38 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-verification-status.txt +15 -0
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-visual-contact-sheet.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/README.txt +13 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/browser-console.json +4 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/layout-audit.json +4 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/review/contact-sheet.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-dark-1024.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-dark-1280.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-dark-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-dark-390.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-dark-768.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-light-1024.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-light-1280.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-light-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-light-390.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-en-light-768.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-dark-1024.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-dark-1280.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-dark-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-dark-390.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-dark-768.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-light-1024.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-light-1280.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-light-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-light-390.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-fa-light-768.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-pseudo-ltr-1024.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/agent-pseudo-rtl-1024.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/consumer-en-light-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/consumer-fa-dark-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/dashboard-en-light-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/dashboard-fa-dark-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/workflow-en-light-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots/workflow-fa-dark-1440.png +0 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/screenshots-manifest.json +203 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/verification-result.json +165 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/verification-result.txt +32 -0
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/visual-index.html +1 -0
- package/artifacts/original-delivery/noe-design-system-evidence/noe-delivery-metadata.json +25 -0
- package/artifacts/original-delivery/noe-design-system-evidence/noe-design-system-execution-report.md +60 -0
- package/artifacts/original-delivery/noe-design-system-evidence/noe-design-system-manifest.json +106 -0
- package/artifacts/original-delivery/noe-design-system-evidence/noe-verification-status.txt +15 -0
- package/artifacts/original-delivery/noe-design-system.bundle +0 -0
- package/artifacts/original-delivery/source-evidence/verification-result.json +165 -0
- package/artifacts/original-delivery/source-evidence/verification-result.txt +32 -0
- package/artifacts/registry-consumer-report.json +153 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Black.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Bold.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-DemiBold.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-ExtraBlack.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-ExtraBold.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Heavy.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Light.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Medium.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Regular.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-Thin.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff/IRANYekanXFaNum-UltraLight.woff +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Black.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Bold.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-DemiBold.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-ExtraBlack.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-ExtraBold.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Heavy.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Light.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Medium.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Regular.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-Thin.woff2 +0 -0
- package/artifacts/source-inputs/persian-fonts/Woff2/IRANYekanXFaNum-UltraLight.woff2 +0 -0
- package/biome.json +170 -0
- package/components.json +23 -0
- package/docs/adr/0001-semantic-foundation.md +5 -0
- package/docs/adr/0002-locale-direction.md +5 -0
- package/docs/adr/0003-registry-mcp.md +5 -0
- package/docs/adr/0004-testing-evidence.md +5 -0
- package/docs/adr/0005-noe-package-namespace.md +9 -0
- package/docs/adr/0006-icons8-icon-policy.md +9 -0
- package/docs/adr/0007-registry-publication-contract.md +9 -0
- package/docs/adr/0008-capability-library-adapter-boundaries.md +16 -0
- package/docs/adr/0009-calendar-system-jalali.md +29 -0
- package/docs/adr/0010-canonical-manifest-ownership.md +29 -0
- package/docs/adr/0011-palette-graphite-governance.md +27 -0
- package/docs/adr/0012-persian-font-gating.md +25 -0
- package/docs/adr/0013-cinematic-token-exception.md +32 -0
- package/docs/design-system/README.md +16 -0
- package/docs/design-system/accessibility.md +20 -0
- package/docs/design-system/agent-guide.md +11 -0
- package/docs/design-system/agentic-ui.md +21 -0
- package/docs/design-system/architecture.md +40 -0
- package/docs/design-system/brand.md +59 -0
- package/docs/design-system/ci-cd.md +46 -0
- package/docs/design-system/components.md +88 -0
- package/docs/design-system/contributing.md +7 -0
- package/docs/design-system/foundations.md +40 -0
- package/docs/design-system/i18n.md +24 -0
- package/docs/design-system/inventory.md +389 -0
- package/docs/design-system/mcp.md +7 -0
- package/docs/design-system/motion.md +7 -0
- package/docs/design-system/noe-brand-audit.md +33 -0
- package/docs/design-system/registry.md +16 -0
- package/docs/design-system/rtl.md +27 -0
- package/docs/design-system/security.md +16 -0
- package/docs/design-system/testing.md +39 -0
- package/docs/design-system/tokens.md +38 -0
- package/docs/design-system/visual-qa.md +10 -0
- package/docs/superpowers/plans/2026-08-25-noe-design-system-development-ready.md +833 -0
- package/docs/superpowers/plans/2026-08-26-noe-complete-catalog.md +422 -0
- package/docs/superpowers/specs/2026-08-25-noe-design-system-development-ready-design.md +260 -0
- package/docs/superpowers/specs/2026-08-26-noe-complete-catalog-design.md +187 -0
- package/llms.txt +20 -0
- package/package.json +68 -0
- package/packages/ai-ui/package.json +15 -0
- package/packages/ai-ui/src/activity-feed.tsx +60 -0
- package/packages/ai-ui/src/agent-composer.tsx +54 -0
- package/packages/ai-ui/src/agent-message.tsx +50 -0
- package/packages/ai-ui/src/agent-plan.tsx +69 -0
- package/packages/ai-ui/src/agent-workspace.tsx +63 -0
- package/packages/ai-ui/src/approval-request.tsx +93 -0
- package/packages/ai-ui/src/index.ts +8 -0
- package/packages/ai-ui/src/run-inspector.tsx +54 -0
- package/packages/ai-ui/src/tool-call.tsx +71 -0
- package/packages/data-ui/package.json +16 -0
- package/packages/data-ui/src/activity-gauge.tsx +38 -0
- package/packages/data-ui/src/chart-frame.tsx +41 -0
- package/packages/data-ui/src/chart.tsx +131 -0
- package/packages/data-ui/src/dashboard-01.tsx +39 -0
- package/packages/data-ui/src/dashboard-02.tsx +33 -0
- package/packages/data-ui/src/dashboard-shell.tsx +56 -0
- package/packages/data-ui/src/data-table.tsx +99 -0
- package/packages/data-ui/src/filter-bar.tsx +28 -0
- package/packages/data-ui/src/index.ts +12 -0
- package/packages/data-ui/src/metric-card.tsx +43 -0
- package/packages/data-ui/src/pagination.tsx +67 -0
- package/packages/data-ui/src/pie-chart.tsx +38 -0
- package/packages/data-ui/src/radar-chart.tsx +38 -0
- package/packages/design-tokens/package.json +23 -0
- package/packages/design-tokens/src/base.css +255 -0
- package/packages/design-tokens/src/fonts/IRANYekanXFaNum-Bold.woff2 +0 -0
- package/packages/design-tokens/src/fonts/IRANYekanXFaNum-DemiBold.woff2 +0 -0
- package/packages/design-tokens/src/fonts/IRANYekanXFaNum-Medium.woff2 +0 -0
- package/packages/design-tokens/src/fonts/IRANYekanXFaNum-Regular.woff2 +0 -0
- package/packages/design-tokens/src/fonts/IRANYekanXVF.ttf +0 -0
- package/packages/design-tokens/src/fonts/README.md +13 -0
- package/packages/design-tokens/src/fonts.css +49 -0
- package/packages/design-tokens/src/index.test.ts +36 -0
- package/packages/design-tokens/src/index.ts +5 -0
- package/packages/design-tokens/src/palette.ts +27 -0
- package/packages/design-tokens/src/tailwind.css +3 -0
- package/packages/design-tokens/src/theme.css +67 -0
- package/packages/design-tokens/src/tokens.css +251 -0
- package/packages/design-tokens/src/tokens.json +275 -0
- package/packages/design-tokens/src/tokens.mjs +276 -0
- package/packages/i18n/package.json +13 -0
- package/packages/i18n/src/index.ts +17 -0
- package/packages/i18n/src/messages/en.json +116 -0
- package/packages/i18n/src/messages/fa.json +116 -0
- package/packages/i18n/src/runtime.d.mts +42 -0
- package/packages/i18n/src/runtime.mjs +113 -0
- package/packages/i18n/src/translate.test.ts +50 -0
- package/packages/i18n/src/translate.ts +29 -0
- package/packages/icons/package.json +12 -0
- package/packages/icons/src/adapters.tsx +167 -0
- package/packages/icons/src/index.tsx +103 -0
- package/packages/registry/README.md +7 -0
- package/packages/registry/catalog-index.json +1345 -0
- package/packages/registry/component-audit.json +1038 -0
- package/packages/registry/coss-adoption.json +281 -0
- package/packages/registry/docs-index.json +1881 -0
- package/packages/registry/manifest.json +11081 -0
- package/packages/registry/manifest.schema.json +135 -0
- package/packages/registry/package.json +10 -0
- package/packages/registry/r/activity-feed.json +67 -0
- package/packages/registry/r/agent-composer.json +79 -0
- package/packages/registry/r/agent-message.json +72 -0
- package/packages/registry/r/agent-plan.json +67 -0
- package/packages/registry/r/agent-workspace.json +67 -0
- package/packages/registry/r/alert.json +68 -0
- package/packages/registry/r/app-frame.json +67 -0
- package/packages/registry/r/approval-request.json +84 -0
- package/packages/registry/r/badge.json +68 -0
- package/packages/registry/r/bidi-text.json +70 -0
- package/packages/registry/r/bottom-navigation.json +67 -0
- package/packages/registry/r/button.json +83 -0
- package/packages/registry/r/calendar.json +97 -0
- package/packages/registry/r/card.json +67 -0
- package/packages/registry/r/chart-frame.json +67 -0
- package/packages/registry/r/chart.json +67 -0
- package/packages/registry/r/code-block.json +67 -0
- package/packages/registry/r/context-menu.json +81 -0
- package/packages/registry/r/dashboard-01.json +86 -0
- package/packages/registry/r/dashboard-02.json +84 -0
- package/packages/registry/r/dashboard-shell.json +67 -0
- package/packages/registry/r/data-list.json +67 -0
- package/packages/registry/r/data-table.json +72 -0
- package/packages/registry/r/date-picker.json +117 -0
- package/packages/registry/r/dialog.json +84 -0
- package/packages/registry/r/direction-provider.json +54 -0
- package/packages/registry/r/drawer.json +80 -0
- package/packages/registry/r/dropdown.json +78 -0
- package/packages/registry/r/empty-state.json +67 -0
- package/packages/registry/r/error-state.json +67 -0
- package/packages/registry/r/fab.json +80 -0
- package/packages/registry/r/featured-icon.json +71 -0
- package/packages/registry/r/filter-bar.json +69 -0
- package/packages/registry/r/gradient-picker.json +62 -0
- package/packages/registry/r/header-navigation.json +67 -0
- package/packages/registry/r/hero-header.json +63 -0
- package/packages/registry/r/icon-system.json +59 -0
- package/packages/registry/r/image-picker.json +62 -0
- package/packages/registry/r/inline-cta.json +73 -0
- package/packages/registry/r/input.json +73 -0
- package/packages/registry/r/landing-page.json +70 -0
- package/packages/registry/r/login-page.json +71 -0
- package/packages/registry/r/marketing-header.json +63 -0
- package/packages/registry/r/menu.json +74 -0
- package/packages/registry/r/messaging.json +69 -0
- package/packages/registry/r/metric-card.json +67 -0
- package/packages/registry/r/mobile-screen.json +67 -0
- package/packages/registry/r/not-found.json +63 -0
- package/packages/registry/r/page-header.json +67 -0
- package/packages/registry/r/pagination.json +91 -0
- package/packages/registry/r/progress-steps.json +69 -0
- package/packages/registry/r/run-inspector.json +72 -0
- package/packages/registry/r/section-header.json +67 -0
- package/packages/registry/r/settings-01.json +94 -0
- package/packages/registry/r/settings-02.json +99 -0
- package/packages/registry/r/settings-page.json +67 -0
- package/packages/registry/r/sidebar-navigation.json +67 -0
- package/packages/registry/r/sign-in-form.json +89 -0
- package/packages/registry/r/skeleton.json +67 -0
- package/packages/registry/r/spinner.json +67 -0
- package/packages/registry/r/tabs.json +69 -0
- package/packages/registry/r/textarea.json +73 -0
- package/packages/registry/r/tool-call.json +72 -0
- package/packages/registry/r/tooltip.json +73 -0
- package/packages/registry/r/utility-button.json +83 -0
- package/packages/registry/r/workflow-canvas.json +67 -0
- package/packages/registry/r/workflow-node.json +72 -0
- package/packages/registry/r-planned-backup/about-page.json +14 -0
- package/packages/registry/r-planned-backup/activity-gauge.json +14 -0
- package/packages/registry/r-planned-backup/avatar.json +14 -0
- package/packages/registry/r-planned-backup/badge-group.json +14 -0
- package/packages/registry/r-planned-backup/banner.json +14 -0
- package/packages/registry/r-planned-backup/blog-index-page.json +14 -0
- package/packages/registry/r-planned-backup/blog-post-page.json +14 -0
- package/packages/registry/r-planned-backup/blog-section.json +14 -0
- package/packages/registry/r-planned-backup/button-group.json +14 -0
- package/packages/registry/r-planned-backup/careers-section.json +14 -0
- package/packages/registry/r-planned-backup/carousel.json +14 -0
- package/packages/registry/r-planned-backup/checkbox.json +14 -0
- package/packages/registry/r-planned-backup/color-picker.json +14 -0
- package/packages/registry/r-planned-backup/command-menu.json +14 -0
- package/packages/registry/r-planned-backup/contact-page.json +14 -0
- package/packages/registry/r-planned-backup/contact-section.json +14 -0
- package/packages/registry/r-planned-backup/content-divider.json +14 -0
- package/packages/registry/r-planned-backup/content-section.json +14 -0
- package/packages/registry/r-planned-backup/credit-card.json +14 -0
- package/packages/registry/r-planned-backup/cta-section.json +14 -0
- package/packages/registry/r-planned-backup/email-template.json +14 -0
- package/packages/registry/r-planned-backup/faq-page.json +14 -0
- package/packages/registry/r-planned-backup/faq-section.json +14 -0
- package/packages/registry/r-planned-backup/feature-section.json +14 -0
- package/packages/registry/r-planned-backup/file-uploader.json +14 -0
- package/packages/registry/r-planned-backup/footer.json +14 -0
- package/packages/registry/r-planned-backup/forgot-password-page.json +14 -0
- package/packages/registry/r-planned-backup/illustration.json +14 -0
- package/packages/registry/r-planned-backup/informational-page-01.json +14 -0
- package/packages/registry/r-planned-backup/informational-page-02.json +14 -0
- package/packages/registry/r-planned-backup/legal-page.json +14 -0
- package/packages/registry/r-planned-backup/marketing-404-page.json +14 -0
- package/packages/registry/r-planned-backup/metrics-section.json +14 -0
- package/packages/registry/r-planned-backup/multi-select.json +14 -0
- package/packages/registry/r-planned-backup/newsletter.json +14 -0
- package/packages/registry/r-planned-backup/notification.json +14 -0
- package/packages/registry/r-planned-backup/pie-chart.json +14 -0
- package/packages/registry/r-planned-backup/pricing-page.json +14 -0
- package/packages/registry/r-planned-backup/pricing-section.json +14 -0
- package/packages/registry/r-planned-backup/progress-indicator.json +14 -0
- package/packages/registry/r-planned-backup/qr-code.json +14 -0
- package/packages/registry/r-planned-backup/radar-chart.json +14 -0
- package/packages/registry/r-planned-backup/radio-group.json +14 -0
- package/packages/registry/r-planned-backup/rating.json +14 -0
- package/packages/registry/r-planned-backup/rich-text-editor.json +14 -0
- package/packages/registry/r-planned-backup/section-footer.json +14 -0
- package/packages/registry/r-planned-backup/select.json +14 -0
- package/packages/registry/r-planned-backup/sign-up-page.json +14 -0
- package/packages/registry/r-planned-backup/slider.json +14 -0
- package/packages/registry/r-planned-backup/social-button.json +14 -0
- package/packages/registry/r-planned-backup/social-proof.json +14 -0
- package/packages/registry/r-planned-backup/store-button.json +14 -0
- package/packages/registry/r-planned-backup/tags.json +14 -0
- package/packages/registry/r-planned-backup/team-page.json +14 -0
- package/packages/registry/r-planned-backup/team-section.json +14 -0
- package/packages/registry/r-planned-backup/testimonial-section.json +14 -0
- package/packages/registry/r-planned-backup/toggle.json +14 -0
- package/packages/registry/r-planned-backup/tree-view.json +14 -0
- package/packages/registry/r-planned-backup/verification-code.json +14 -0
- package/packages/registry/r-planned-backup/verification-page.json +14 -0
- package/packages/registry/r-planned-backup/video-player.json +14 -0
- package/packages/registry/registry.json +1997 -0
- package/packages/registry/search-index.json +3942 -0
- package/packages/testing/package.json +9 -0
- package/packages/testing/src/index.mjs +10 -0
- package/packages/ui/package.json +26 -0
- package/packages/ui/src/about-page.tsx +19 -0
- package/packages/ui/src/alert.tsx +67 -0
- package/packages/ui/src/app-frame.tsx +63 -0
- package/packages/ui/src/avatar.tsx +19 -0
- package/packages/ui/src/badge-group.tsx +19 -0
- package/packages/ui/src/badge.tsx +35 -0
- package/packages/ui/src/banner.tsx +19 -0
- package/packages/ui/src/bidi.tsx +80 -0
- package/packages/ui/src/blog-index-page.tsx +19 -0
- package/packages/ui/src/blog-post-page.tsx +19 -0
- package/packages/ui/src/blog-section.tsx +19 -0
- package/packages/ui/src/bottom-navigation.tsx +60 -0
- package/packages/ui/src/button-group.tsx +19 -0
- package/packages/ui/src/button.browser.test.tsx +38 -0
- package/packages/ui/src/button.tsx +81 -0
- package/packages/ui/src/calendar-system.test.ts +103 -0
- package/packages/ui/src/calendar-system.ts +120 -0
- package/packages/ui/src/calendar.browser.test.tsx +52 -0
- package/packages/ui/src/calendar.tsx +339 -0
- package/packages/ui/src/card.tsx +63 -0
- package/packages/ui/src/careers-section.tsx +19 -0
- package/packages/ui/src/carousel.tsx +19 -0
- package/packages/ui/src/checkbox.tsx +17 -0
- package/packages/ui/src/cinematic/cinematic.css +2020 -0
- package/packages/ui/src/cinematic/ecosystem-motion-showcase.tsx +265 -0
- package/packages/ui/src/cinematic/ecosystem-sphere.tsx +627 -0
- package/packages/ui/src/cinematic/index.ts +5 -0
- package/packages/ui/src/cinematic/kinetic-experience.tsx +207 -0
- package/packages/ui/src/cinematic/portfolio.ts +132 -0
- package/packages/ui/src/cinematic/system-anatomy.tsx +173 -0
- package/packages/ui/src/code.tsx +119 -0
- package/packages/ui/src/color-picker.tsx +22 -0
- package/packages/ui/src/command-menu.tsx +19 -0
- package/packages/ui/src/contact-page.tsx +19 -0
- package/packages/ui/src/contact-section.tsx +19 -0
- package/packages/ui/src/content-divider.tsx +19 -0
- package/packages/ui/src/content-section.tsx +19 -0
- package/packages/ui/src/context-menu.tsx +208 -0
- package/packages/ui/src/credit-card.tsx +19 -0
- package/packages/ui/src/cta-section.tsx +19 -0
- package/packages/ui/src/data-list.tsx +81 -0
- package/packages/ui/src/date-picker.browser.test.tsx +48 -0
- package/packages/ui/src/date-picker.tsx +248 -0
- package/packages/ui/src/dialog.browser.test.tsx +32 -0
- package/packages/ui/src/dialog.tsx +144 -0
- package/packages/ui/src/direction.tsx +46 -0
- package/packages/ui/src/drawer.tsx +179 -0
- package/packages/ui/src/dropdown.tsx +200 -0
- package/packages/ui/src/email-template.tsx +19 -0
- package/packages/ui/src/empty-state.tsx +43 -0
- package/packages/ui/src/error-state.tsx +44 -0
- package/packages/ui/src/fab.tsx +32 -0
- package/packages/ui/src/faq-page.tsx +19 -0
- package/packages/ui/src/faq-section.tsx +19 -0
- package/packages/ui/src/feature-section.tsx +19 -0
- package/packages/ui/src/featured-icon.tsx +63 -0
- package/packages/ui/src/field.browser.test.tsx +33 -0
- package/packages/ui/src/field.tsx +117 -0
- package/packages/ui/src/file-uploader.tsx +19 -0
- package/packages/ui/src/footer.tsx +19 -0
- package/packages/ui/src/forgot-password-page.tsx +19 -0
- package/packages/ui/src/gradient-picker.tsx +65 -0
- package/packages/ui/src/header-navigation.tsx +71 -0
- package/packages/ui/src/hero-header.tsx +57 -0
- package/packages/ui/src/illustration.tsx +19 -0
- package/packages/ui/src/image-picker.tsx +56 -0
- package/packages/ui/src/index.ts +110 -0
- package/packages/ui/src/informational-page-01.tsx +19 -0
- package/packages/ui/src/informational-page-02.tsx +19 -0
- package/packages/ui/src/inline-cta.tsx +29 -0
- package/packages/ui/src/input.tsx +44 -0
- package/packages/ui/src/landing-page.tsx +56 -0
- package/packages/ui/src/legal-page.tsx +19 -0
- package/packages/ui/src/lib/cn.ts +6 -0
- package/packages/ui/src/lib/i18n-messages.ts +40 -0
- package/packages/ui/src/login-page.tsx +78 -0
- package/packages/ui/src/marketing-404-page.tsx +19 -0
- package/packages/ui/src/marketing-header.tsx +53 -0
- package/packages/ui/src/menu.tsx +220 -0
- package/packages/ui/src/messaging.tsx +62 -0
- package/packages/ui/src/metrics-section.tsx +19 -0
- package/packages/ui/src/mobile-screen.tsx +37 -0
- package/packages/ui/src/multi-select.tsx +16 -0
- package/packages/ui/src/newsletter.tsx +19 -0
- package/packages/ui/src/not-found.tsx +60 -0
- package/packages/ui/src/notification.tsx +19 -0
- package/packages/ui/src/page-header.tsx +80 -0
- package/packages/ui/src/pricing-page.tsx +19 -0
- package/packages/ui/src/pricing-section.tsx +19 -0
- package/packages/ui/src/progress-indicator.tsx +19 -0
- package/packages/ui/src/progress-steps.tsx +85 -0
- package/packages/ui/src/qr-code.tsx +19 -0
- package/packages/ui/src/radio-group.tsx +26 -0
- package/packages/ui/src/rating.tsx +19 -0
- package/packages/ui/src/rich-text-editor.tsx +18 -0
- package/packages/ui/src/section-footer.tsx +19 -0
- package/packages/ui/src/section-header.tsx +37 -0
- package/packages/ui/src/select.tsx +27 -0
- package/packages/ui/src/settings-01.tsx +49 -0
- package/packages/ui/src/settings-02.tsx +58 -0
- package/packages/ui/src/settings-page.tsx +62 -0
- package/packages/ui/src/sidebar-navigation.tsx +77 -0
- package/packages/ui/src/sign-in-form.tsx +60 -0
- package/packages/ui/src/sign-up-page.tsx +19 -0
- package/packages/ui/src/skeleton.tsx +14 -0
- package/packages/ui/src/slider.tsx +13 -0
- package/packages/ui/src/social-button.tsx +19 -0
- package/packages/ui/src/social-proof.tsx +19 -0
- package/packages/ui/src/spinner.tsx +26 -0
- package/packages/ui/src/store-button.tsx +19 -0
- package/packages/ui/src/tabs.browser.test.tsx +33 -0
- package/packages/ui/src/tabs.tsx +175 -0
- package/packages/ui/src/tags.tsx +11 -0
- package/packages/ui/src/team-page.tsx +19 -0
- package/packages/ui/src/team-section.tsx +19 -0
- package/packages/ui/src/testimonial-section.tsx +19 -0
- package/packages/ui/src/textarea.tsx +45 -0
- package/packages/ui/src/theme-provider.browser.test.tsx +90 -0
- package/packages/ui/src/theme-provider.tsx +417 -0
- package/packages/ui/src/theme-toggle.tsx +107 -0
- package/packages/ui/src/toggle.tsx +34 -0
- package/packages/ui/src/tooltip.tsx +50 -0
- package/packages/ui/src/tree-view.tsx +19 -0
- package/packages/ui/src/utility-button.tsx +33 -0
- package/packages/ui/src/utils.ts +13 -0
- package/packages/ui/src/verification-code.tsx +27 -0
- package/packages/ui/src/verification-page.tsx +19 -0
- package/packages/ui/src/video-player.tsx +19 -0
- package/packages/workflow-ui/package.json +15 -0
- package/packages/workflow-ui/src/index.ts +2 -0
- package/packages/workflow-ui/src/workflow-canvas.tsx +51 -0
- package/packages/workflow-ui/src/workflow-node.tsx +61 -0
- package/playwright.config.ts +58 -0
- package/pnpm-workspace.yaml +5 -0
- package/registry.json +216 -0
- package/scripts/build-static.mjs +68 -0
- package/scripts/capture-visuals.py +106 -0
- package/scripts/capture-visuals.sh +10 -0
- package/scripts/create-visual-index.mjs +16 -0
- package/scripts/enrich-registry-payloads.mjs +83 -0
- package/scripts/fix-noe-imports.mjs +134 -0
- package/scripts/fix-registry-closure.mjs +110 -0
- package/scripts/fix-registry-deps-cleanup.mjs +149 -0
- package/scripts/fix-relative-for-registry.mjs +103 -0
- package/scripts/generate-design-tokens.mjs +134 -0
- package/scripts/generate-inventory.mjs +62 -0
- package/scripts/generate-manifest.mjs +1149 -0
- package/scripts/generate-phase4.mjs +875 -0
- package/scripts/validate-manifest.mjs +477 -0
- package/scripts/validate-pngs.mjs +31 -0
- package/scripts/verify-registry-consumer.mjs +319 -0
- package/scripts/verify-registry-dependencies.mjs +162 -0
- package/scripts/verify.mjs +316 -0
- package/tests/catalog-audit.test.mjs +156 -0
- package/tests/e2e/capture-visuals.mjs +34 -0
- package/tests/e2e/catalog-typography.spec.ts +110 -0
- package/tests/e2e/catalog.spec.ts +68 -0
- package/tests/e2e/direction.spec.ts +60 -0
- package/tests/e2e/responsive.spec.ts +30 -0
- package/tests/e2e/surfaces.spec.ts +51 -0
- package/tests/i18n.test.mjs +36 -0
- package/tests/icons.test.mjs +21 -0
- package/tests/registry-publication.test.mjs +88 -0
- package/tests/registry.test.mjs +51 -0
- package/tests/rtl.test.mjs +21 -0
- package/tests/static-app.test.mjs +49 -0
- package/tests/tokens.test.mjs +24 -0
- package/tests/workspace.test.mjs +25 -0
- package/tsconfig.base.json +69 -0
- package/tsconfig.json +27 -0
- package/tsconfig.verify.json +19 -0
- package/types/offline-react.d.ts +73 -0
- package/vitest.config.ts +91 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" dir="ltr" data-theme="light" data-locale="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
|
7
|
+
<meta name="color-scheme" content="light dark" />
|
|
8
|
+
<title>NOE Design System Reference</title>
|
|
9
|
+
<link rel="stylesheet" href="../../packages/design-tokens/src/tokens.css" />
|
|
10
|
+
<link rel="stylesheet" href="./styles.css" />
|
|
11
|
+
<script defer src="./app.js"></script>
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<a class="skip-link" href="#main" data-i18n="skip.content">Skip to content</a>
|
|
15
|
+
<header class="topbar">
|
|
16
|
+
<a class="brand" href="./" data-i18n-aria="brand.home" aria-label="NOE home">
|
|
17
|
+
<svg viewBox="0 0 32 32" aria-hidden="true"><circle cx="16" cy="16" r="12" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="16" cy="16" r="3" fill="currentColor"/><path d="M4 16h9M19 16h9M16 4v9M16 19v9" stroke="currentColor" stroke-width="2"/></svg>
|
|
18
|
+
<span>NOE<span class="brand-muted">cosystem</span></span>
|
|
19
|
+
</a>
|
|
20
|
+
<nav class="primary-nav" aria-label="Primary">
|
|
21
|
+
<a href="?surface=consumer" data-i18n="nav.system">System</a>
|
|
22
|
+
<a href="?surface=consumer" data-i18n="nav.principles">Principles</a>
|
|
23
|
+
<a href="?surface=dashboard" data-i18n="nav.progress">Progress</a>
|
|
24
|
+
</nav>
|
|
25
|
+
<div class="topbar-actions">
|
|
26
|
+
<button class="icon-button" type="button" data-action="theme" data-i18n-aria="action.toggleTheme" aria-label="Toggle theme"><span aria-hidden="true">◐</span></button>
|
|
27
|
+
<button class="compact-button" type="button" data-action="locale"><span data-locale-label>FA</span></button>
|
|
28
|
+
<button class="accent-button" type="button"><span data-i18n="nav.ask">Ask NOa</span><span aria-hidden="true">↗</span></button>
|
|
29
|
+
</div>
|
|
30
|
+
</header>
|
|
31
|
+
|
|
32
|
+
<!-- biome-ignore lint/a11y/useSemanticElements: control cluster has no fieldset-equivalent styling contract -->
|
|
33
|
+
<div class="reference-controls" role="group" data-i18n-aria="reference.controls" aria-label="Reference controls">
|
|
34
|
+
<label><span data-i18n="control.surface">Surface</span>
|
|
35
|
+
<select data-control="surface">
|
|
36
|
+
<option value="consumer">Consumer</option>
|
|
37
|
+
<option value="dashboard">Dashboard</option>
|
|
38
|
+
<option value="agent">Agent</option>
|
|
39
|
+
<option value="workflow">Workflow</option>
|
|
40
|
+
</select>
|
|
41
|
+
</label>
|
|
42
|
+
<label><span data-i18n="control.locale">Locale</span>
|
|
43
|
+
<select data-control="locale">
|
|
44
|
+
<option value="en">English</option>
|
|
45
|
+
<option value="fa">فارسی</option>
|
|
46
|
+
<option value="en-XA">Pseudo LTR</option>
|
|
47
|
+
<option value="ar-XB">Pseudo RTL</option>
|
|
48
|
+
</select>
|
|
49
|
+
</label>
|
|
50
|
+
<label><span data-i18n="control.theme">Theme</span>
|
|
51
|
+
<select data-control="theme">
|
|
52
|
+
<option value="light">Light</option>
|
|
53
|
+
<option value="dark">Dark</option>
|
|
54
|
+
</select>
|
|
55
|
+
</label>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<main id="main">
|
|
59
|
+
<section class="surface surface-consumer" data-surface="consumer">
|
|
60
|
+
<div class="hero-grid">
|
|
61
|
+
<div class="hero-copy">
|
|
62
|
+
<p class="eyebrow" data-i18n="hero.eyebrow">NOECOSYSTEM / SHARED DIGITAL FOUNDATIONS</p>
|
|
63
|
+
<h1 data-i18n="hero.title">Shared foundations. Connected experiences.</h1>
|
|
64
|
+
<p class="hero-body" data-i18n="hero.body">A shared digital foundation for connected products and services—coherent at the core, clear at the surface.</p>
|
|
65
|
+
<div class="hero-actions">
|
|
66
|
+
<a class="accent-button" href="#foundation" data-i18n="hero.primary">Explore the system</a>
|
|
67
|
+
<a class="quiet-button" href="?surface=dashboard"><span data-i18n="hero.secondary">View progress</span><span class="logical-icon" aria-hidden="true">→</span></a>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="system-visual" role="img" data-i18n-aria="system.visual.label" aria-label="Connected NOE system illustration">
|
|
71
|
+
<div class="system-axis system-axis-inline" aria-hidden="true"></div>
|
|
72
|
+
<div class="system-axis system-axis-block" aria-hidden="true"></div>
|
|
73
|
+
<div class="orbit orbit-one" aria-hidden="true"></div>
|
|
74
|
+
<div class="orbit orbit-two" aria-hidden="true"></div>
|
|
75
|
+
<div class="core-node"><span>NOE</span><small>SHARED CORE</small></div>
|
|
76
|
+
<div class="satellite satellite-a"><span>NOCloud</span></div>
|
|
77
|
+
<div class="satellite satellite-b"><span>NOData</span></div>
|
|
78
|
+
<div class="satellite satellite-c"><span>NOsist</span></div>
|
|
79
|
+
<div class="satellite satellite-d"><span>NOrbit</span></div>
|
|
80
|
+
<div class="signal signal-a" aria-hidden="true"></div>
|
|
81
|
+
<div class="signal signal-b" aria-hidden="true"></div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<section class="foundation-section" id="foundation">
|
|
86
|
+
<div class="section-heading">
|
|
87
|
+
<p class="eyebrow">01 / FOUNDATION</p>
|
|
88
|
+
<h2 data-i18n="foundation.title">A shared core. Distinct experiences.</h2>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="principle-grid">
|
|
91
|
+
<article><span>01</span><h3 data-i18n="foundation.shared">Shared by design.</h3><p>Identity, trust, data, and reusable capabilities mature once beneath every product.</p></article>
|
|
92
|
+
<article><span>02</span><h3 data-i18n="foundation.connected">Connected with intent.</h3><p>Signals move only where needed, keeping each capability focused and the whole system coherent.</p></article>
|
|
93
|
+
<article><span>03</span><h3 data-i18n="foundation.clear">Clear at the surface.</h3><p>Complexity stays underneath a calm, direct, and distinctly useful human experience.</p></article>
|
|
94
|
+
</div>
|
|
95
|
+
</section>
|
|
96
|
+
|
|
97
|
+
<section class="ask-panel">
|
|
98
|
+
<div><p class="eyebrow">NOsist / AI FOUNDATION</p><h2>Move from intent to coordinated action.</h2><p>Ask, inspect, approve, and receive a clear result. Technical detail remains available without dominating the experience.</p></div>
|
|
99
|
+
<form class="composer" data-demo-composer>
|
|
100
|
+
<label class="sr-only" for="consumer-prompt">Prompt</label>
|
|
101
|
+
<textarea id="consumer-prompt" rows="3" dir="auto" data-i18n-placeholder="agent.composer.placeholder" placeholder="Ask NOa to investigate, plan, or execute…"></textarea>
|
|
102
|
+
<footer><span><kbd>⌘</kbd><kbd>↵</kbd></span><button class="accent-button" type="submit"><span data-i18n="nav.ask">Ask NOa</span><span class="logical-icon" aria-hidden="true">→</span></button></footer>
|
|
103
|
+
</form>
|
|
104
|
+
</section>
|
|
105
|
+
</section>
|
|
106
|
+
|
|
107
|
+
<section class="surface app-surface" data-surface="dashboard" hidden>
|
|
108
|
+
<aside class="app-sidebar">
|
|
109
|
+
<div class="sidebar-brand"><span class="brand-glyph">N</span><div><strong>NOE</strong><small data-i18n="brand.controlCenter">CONTROL CENTER</small></div></div>
|
|
110
|
+
<nav aria-label="Dashboard">
|
|
111
|
+
<a href="#main" aria-current="page"><span aria-hidden="true">◫</span><span data-i18n="nav.overview">Overview</span></a>
|
|
112
|
+
<a href="#main"><span aria-hidden="true">⌁</span><span data-i18n="nav.services">Services</span></a>
|
|
113
|
+
<a href="#main"><span aria-hidden="true">◇</span><span data-i18n="nav.signals">Signals</span></a>
|
|
114
|
+
<a href="#main"><span aria-hidden="true">✓</span><span data-i18n="nav.approvals">Approvals</span><b>2</b></a>
|
|
115
|
+
<a href="#main"><span aria-hidden="true">◎</span><span data-i18n="nav.observability">Observability</span></a>
|
|
116
|
+
</nav>
|
|
117
|
+
<div class="sidebar-foot"><span class="avatar">AM</span><div><strong>Ali Mohammadi</strong><small data-i18n="sidebar.platformOwner">Platform owner</small></div><button type="button" class="icon-button" data-i18n-aria="action.accountMenu" aria-label="Account menu">•••</button></div>
|
|
118
|
+
</aside>
|
|
119
|
+
<div class="app-main">
|
|
120
|
+
<header class="page-header">
|
|
121
|
+
<div><p class="eyebrow" data-i18n="dashboard.eyebrow">OPERATIONS / LIVE</p><h1 data-i18n="dashboard.title">Operating overview</h1><p data-i18n="dashboard.subtitle">Signals, services, and delivery health across the ecosystem.</p></div>
|
|
122
|
+
<div class="page-actions"><button type="button" class="compact-button"><span aria-hidden="true">↻</span><span data-i18n="dashboard.refresh">Refresh</span></button><button type="button" class="accent-button" data-i18n="dashboard.createView">Create view</button></div>
|
|
123
|
+
</header>
|
|
124
|
+
<div class="metric-grid">
|
|
125
|
+
<article class="metric-card"><header><span data-i18n="metric.active">Active services</span><span class="metric-icon">◇</span></header><strong>24</strong><footer><bdi class="positive" dir="ltr" data-i18n="metric.active.delta">+3</bdi><span data-i18n="metric.active.period">this quarter</span></footer></article>
|
|
126
|
+
<article class="metric-card"><header><span data-i18n="metric.reliability">Reliability</span><span class="metric-icon">◎</span></header><strong dir="ltr">99.97%</strong><footer><bdi class="positive" dir="ltr" data-i18n="metric.reliability.delta">+0.04%</bdi><span data-i18n="metric.reliability.period">30-day window</span></footer></article>
|
|
127
|
+
<article class="metric-card"><header><span data-i18n="metric.latency">Median latency</span><span class="metric-icon">⌁</span></header><strong dir="ltr">184 ms</strong><footer><bdi class="positive" dir="ltr" data-i18n="metric.latency.delta">−18 ms</bdi><span data-i18n="metric.latency.period">week over week</span></footer></article>
|
|
128
|
+
<article class="metric-card warning"><header><span data-i18n="metric.approvals">Pending approvals</span><span class="metric-icon">!</span></header><strong>2</strong><footer><span data-i18n="metric.approvals.note">1 high-impact</span><span data-i18n="metric.approvals.action">review required</span></footer></article>
|
|
129
|
+
</div>
|
|
130
|
+
<section class="table-panel">
|
|
131
|
+
<header class="panel-header"><div><h2 data-i18n="panel.serviceHealth.title">Service health</h2><p data-i18n="panel.serviceHealth.subtitle">Current status and responsibility across shared capabilities.</p></div><div class="filter-row"><label class="search-control"><span aria-hidden="true">⌕</span><input type="search" dir="auto" data-i18n-placeholder="common.search" placeholder="Search" /></label><button type="button" class="compact-button"><span aria-hidden="true">≡</span><span data-i18n="common.filter">Filter</span></button></div></header>
|
|
132
|
+
<!-- biome-ignore lint/a11y/noNoninteractiveTabindex: WCAG keyboard-accessible scrollable region -->
|
|
133
|
+
<section class="table-scroll" aria-label="Service health" tabindex="0">
|
|
134
|
+
<table>
|
|
135
|
+
<caption class="sr-only">Service health</caption>
|
|
136
|
+
<thead><tr><th scope="col" data-i18n="table.service">Service</th><th scope="col" data-i18n="table.owner">Owner</th><th scope="col" data-i18n="table.status">Status</th><th scope="col" data-i18n="table.updated">Updated</th><th scope="col" data-i18n="table.actions">Actions</th></tr></thead>
|
|
137
|
+
<tbody>
|
|
138
|
+
<tr><td><div class="service-cell"><span class="service-mark">C</span><div><strong>NOCloud</strong><small>Cloud Engineering</small></div></div></td><td>Platform</td><td><span class="status healthy"><i></i><span data-i18n="status.healthy">Healthy</span></span></td><td><time data-i18n="time.2m">2m ago</time></td><td><button type="button" class="icon-button" data-i18n-aria="action.more" aria-label="More actions">•••</button></td></tr>
|
|
139
|
+
<tr><td><div class="service-cell"><span class="service-mark">D</span><div><strong>NOData</strong><small>Data & Integration</small></div></div></td><td>Data Core</td><td><span class="status healthy"><i></i><span data-i18n="status.healthy">Healthy</span></span></td><td><time data-i18n="time.4m">4m ago</time></td><td><button type="button" class="icon-button" data-i18n-aria="action.more" aria-label="More actions">•••</button></td></tr>
|
|
140
|
+
<tr><td><div class="service-cell"><span class="service-mark">O</span><div><strong>NOrchestration</strong><small>Enterprise Orchestration</small></div></div></td><td>Workflow</td><td><span class="status degraded"><i></i><span data-i18n="status.degraded">Degraded</span></span></td><td><time data-i18n="time.8m">8m ago</time></td><td><button type="button" class="icon-button" data-i18n-aria="action.more" aria-label="More actions">•••</button></td></tr>
|
|
141
|
+
<tr><td><div class="service-cell"><span class="service-mark">A</span><div><strong>NOsist</strong><small>AI Foundation</small></div></div></td><td>AI Platform</td><td><span class="status healthy"><i></i><span data-i18n="status.healthy">Healthy</span></span></td><td><time data-i18n="time.11m">11m ago</time></td><td><button type="button" class="icon-button" data-i18n-aria="action.more" aria-label="More actions">•••</button></td></tr>
|
|
142
|
+
</tbody>
|
|
143
|
+
</table>
|
|
144
|
+
</section>
|
|
145
|
+
<footer class="pagination"><span dir="auto" data-i18n="pagination.summary">1–4 of 24</span><div><button type="button" class="icon-button" data-i18n-aria="action.previousPage" aria-label="Previous page"><span class="logical-icon backward">→</span></button><button type="button" class="page-button" aria-current="page">1</button><button type="button" class="page-button">2</button><button type="button" class="page-button">3</button><button type="button" class="icon-button" data-i18n-aria="action.nextPage" aria-label="Next page"><span class="logical-icon">→</span></button></div></footer>
|
|
146
|
+
</section>
|
|
147
|
+
</div>
|
|
148
|
+
</section>
|
|
149
|
+
|
|
150
|
+
<section class="surface agent-surface" data-surface="agent" hidden>
|
|
151
|
+
<aside class="agent-nav">
|
|
152
|
+
<div class="sidebar-brand"><span class="brand-glyph">N</span><div><strong>NOsist</strong><small data-i18n="agent.brand.small">AGENT FOUNDATION</small></div></div>
|
|
153
|
+
<button type="button" class="new-run-button"><span aria-hidden="true">+</span><span data-i18n="agent.newRun">New run</span><kbd>⌘K</kbd></button>
|
|
154
|
+
<nav aria-label="Agent workspace"><p data-i18n="agent.section.workspace">WORKSPACE</p><a href="#main" aria-current="page"><span>◉</span><span data-i18n="nav.conversation">Conversation</span></a><a href="#main"><span>▱</span><span data-i18n="nav.artifacts">Artifacts</span><b>1</b></a><a href="#main"><span>⌁</span><span data-i18n="nav.runs">Runs</span></a><a href="#main"><span>◇</span><span data-i18n="nav.workflows">Workflows</span></a><p data-i18n="agent.section.recent">RECENT</p><a href="#main"><span class="recent-dot healthy-dot"></span><span data-i18n="agent.recent.orchestration">Orchestration review</span></a><a href="#main"><span class="recent-dot"></span><span data-i18n="agent.recent.release">Release readiness</span></a></nav>
|
|
155
|
+
<div class="sidebar-foot"><span class="avatar">AM</span><div><strong>Ali Mohammadi</strong><small data-i18n="sidebar.platformOwner">Production</small></div><button type="button" class="icon-button" data-i18n-aria="action.accountMenu" aria-label="Account menu">•••</button></div>
|
|
156
|
+
</aside>
|
|
157
|
+
<section class="conversation-pane">
|
|
158
|
+
<header class="conversation-header"><div><h1 data-i18n="agent.title">Agent workspace</h1><p><span class="status healthy"><i></i><span data-i18n="agent.status.online">NOa / online</span></span><span class="technical" dir="ltr">gpt-5.6</span></p></div><div><button type="button" class="icon-button" data-i18n-aria="action.search" aria-label="Search">⌕</button><button type="button" class="icon-button" data-i18n-aria="common.more" aria-label="More">•••</button></div></header>
|
|
159
|
+
<div class="conversation-scroll">
|
|
160
|
+
<div class="conversation-intro"><p class="eyebrow">RUN / <bdi dir="ltr">run_01JY9A6F</bdi></p><h2 data-i18n="agent.run.title">Operational health review</h2><p data-i18n="agent.subtitle">Coordinate plans, tools, approvals, and artifacts without exposing implementation noise.</p></div>
|
|
161
|
+
<article class="message user-message"><header><span class="avatar">AM</span><div><strong data-i18n="agent.you">You</strong><time>10:42</time></div></header><p dir="auto" data-i18n="agent.message.user">Review today’s orchestration health and prepare an executive summary.</p></article>
|
|
162
|
+
<article class="message assistant-message"><header><span class="agent-avatar">N</span><div><strong>NOa</strong><span class="technical" dir="ltr">gpt-5.6</span></div></header>
|
|
163
|
+
<section class="plan-card"><header><div><span class="plan-icon">≡</span><div><strong data-i18n="agent.plan">Execution plan</strong><small data-i18n="agent.plan.progress">3 steps · 2 completed</small></div></div><button type="button" class="icon-button" data-i18n-aria="action.collapse" aria-label="Collapse">⌃</button></header><ol><li class="completed"><i>✓</i><span data-i18n="agent.plan.step1">Inspect service health</span><time dir="ltr">1.2s</time></li><li class="completed"><i>✓</i><span data-i18n="agent.plan.step2">Compare incidents and change history</span><time dir="ltr">2.8s</time></li><li class="running"><i></i><span data-i18n="agent.plan.step3">Prepare the decision brief</span><time data-i18n="status.running">Running</time></li></ol></section>
|
|
164
|
+
<details class="tool-card"><summary><span class="tool-icon">⌁</span><div><strong data-i18n="tool.title">Fetch service health</strong><small><bdi dir="ltr">mcp://noe-observability/service-health</bdi></small></div><span class="status healthy"><i></i><span data-i18n="tool.success">Telemetry retrieved</span></span><span>⌄</span></summary><div class="tool-body"><p data-i18n="tool.scope">Read-only access to service telemetry</p><dl><div><dt data-i18n="tool.scope.label">Scope</dt><dd><bdi dir="ltr">production/*</bdi></dd></div><div><dt data-i18n="tool.duration">Duration</dt><dd><bdi dir="ltr">1.2s</bdi></dd></div></dl></div></details>
|
|
165
|
+
<p dir="auto" data-i18n="agent.message.assistant">I found one degraded connector and two approvals that require attention. The executive summary is ready for review.</p>
|
|
166
|
+
<section class="approval-card"><header><span class="approval-icon">!</span><div><h3 data-i18n="approval.title">Approval required</h3><p data-i18n="approval.body">Publish the prepared executive brief to the leadership workspace.</p></div></header><dl><div><dt data-i18n="approval.target">Target</dt><dd><bdi dir="ltr">workspace://leadership/daily-brief</bdi></dd></div><div><dt data-i18n="approval.visibility">Visibility</dt><dd data-i18n="approval.visibility.value">Leadership</dd></div><div><dt data-i18n="approval.consequence">Consequence</dt><dd data-i18n="approval.consequence.value">Publishes a new shared artifact</dd></div></dl><footer><button type="button" class="accent-button" data-i18n="approval.once">Allow once</button><button type="button" class="compact-button" data-i18n="approval.session">Allow for session</button><button type="button" class="quiet-button" data-i18n="approval.deny">Deny</button></footer></section>
|
|
167
|
+
</article>
|
|
168
|
+
</div>
|
|
169
|
+
<form class="composer agent-composer" data-demo-composer><label class="sr-only" for="agent-prompt">Prompt</label><textarea id="agent-prompt" rows="3" dir="auto" data-i18n-placeholder="agent.composer.placeholder" placeholder="Ask NOa to investigate, plan, or execute…"></textarea><footer><div><button type="button" class="icon-button" data-i18n-aria="action.attach" aria-label="Attach">+</button><button type="button" class="model-button"><span class="agent-avatar small">N</span><span class="technical" dir="ltr">gpt-5.6</span><span aria-hidden="true">⌄</span></button></div><button class="accent-button" type="submit"><span data-i18n="agent.send">Send</span><span class="logical-icon">→</span></button></footer></form>
|
|
170
|
+
</section>
|
|
171
|
+
<aside class="artifact-pane"><header><div><p class="eyebrow" data-i18n="artifact.section">ARTIFACT</p><h2 data-i18n="artifact.title">Executive brief</h2><small data-i18n="artifact.updated">Updated just now</small></div><div><button type="button" class="icon-button">↗</button><button type="button" class="icon-button">•••</button></div></header><article class="artifact-document"><p class="document-kicker" data-i18n="artifact.kicker">OPERATING ECOSYSTEM / DAILY BRIEF</p><h2 data-i18n="artifact.heading">Orchestration remains stable with one contained degradation.</h2><p data-i18n="artifact.body">Core service health is within objective. The degradation is isolated to a partner connector and has not affected critical customer paths.</p><div class="artifact-metrics"><div><span data-i18n="metric.reliability">Reliability</span><strong dir="ltr">99.97%</strong></div><div><span data-i18n="artifact.incidents">Active incidents</span><strong>1</strong></div><div><span data-i18n="nav.approvals">Approvals</span><strong>2</strong></div></div><h3 data-i18n="artifact.decisionPoints">Decision points</h3><ul><li data-i18n="artifact.decision1">Approve connector failover before the next traffic window.</li><li data-i18n="artifact.decision2">Publish the prepared partner communication after legal review.</li></ul><h3 data-i18n="artifact.technicalReference">Technical reference</h3><pre dir="ltr"><code>connector: partner-ledger-02
|
|
172
|
+
status: degraded
|
|
173
|
+
trace: 7f8d2b1c
|
|
174
|
+
p95_latency_ms: 684</code></pre></article>
|
|
175
|
+
<section class="run-strip"><header><span><i class="running-dot"></i><span data-i18n="run.inspector">Run inspector</span></span><button type="button" class="icon-button">⌃</button></header><div><span data-i18n="table.status">Status</span><strong data-i18n="status.running">Running</strong><span data-i18n="run.elapsed">Elapsed</span><bdi dir="ltr">00:04:12</bdi><span data-i18n="run.tokens">Tokens</span><bdi dir="ltr">8,421</bdi></div></section>
|
|
176
|
+
</aside>
|
|
177
|
+
</section>
|
|
178
|
+
|
|
179
|
+
<section class="surface workflow-surface" data-surface="workflow" hidden>
|
|
180
|
+
<aside class="workflow-sidebar">
|
|
181
|
+
<div class="sidebar-brand"><span class="brand-glyph">N</span><div><strong>NOrchestration</strong><small data-i18n="workflow.brand.small">WORKFLOW STUDIO</small></div></div>
|
|
182
|
+
<div class="node-search"><span>⌕</span><input type="search" data-i18n-placeholder="workflow.searchNodes" placeholder="Search nodes" dir="auto" /></div>
|
|
183
|
+
<section><h2 data-i18n="workflow.section.triggers">TRIGGERS</h2><button type="button" draggable="true"><span class="node-symbol trigger-symbol">↯</span><div><strong data-i18n="workflow.node.request">Request</strong><small data-i18n="workflow.node.request.desc">Starts from an incoming request</small></div></button><button type="button" draggable="true"><span class="node-symbol trigger-symbol">◴</span><div><strong data-i18n="workflow.node.schedule">Schedule</strong><small data-i18n="workflow.node.schedule.desc">Starts on a time rule</small></div></button></section>
|
|
184
|
+
<section><h2 data-i18n="workflow.section.capabilities">CAPABILITIES</h2><button type="button" draggable="true"><span class="node-symbol agent-symbol">N</span><div><strong data-i18n="workflow.capability.agent">Agent</strong><small data-i18n="workflow.capability.agent.desc">Plans and reasons</small></div></button><button type="button" draggable="true"><span class="node-symbol tool-symbol">⌁</span><div><strong data-i18n="workflow.capability.tool">Tool</strong><small data-i18n="workflow.capability.tool.desc">Performs a bounded action</small></div></button><button type="button" draggable="true"><span class="node-symbol condition-symbol">◇</span><div><strong data-i18n="workflow.capability.condition">Condition</strong><small data-i18n="workflow.capability.condition.desc">Routes by evaluated state</small></div></button></section>
|
|
185
|
+
</aside>
|
|
186
|
+
<div class="workflow-main">
|
|
187
|
+
<header class="workflow-header"><div><button type="button" class="icon-button" data-i18n-aria="action.back" aria-label="Back"><span class="logical-icon backward">→</span></button><div><h1 data-i18n="workflow.title">Workflow builder</h1><p><span class="status healthy"><i></i><span data-i18n="workflow.saved">Saved</span></span><bdi dir="ltr">exec-health-review-v4</bdi></p></div></div><div><button type="button" class="compact-button" data-i18n="workflow.testRun">Test run</button><button type="button" class="accent-button" data-i18n="workflow.publish">Publish</button></div></header>
|
|
188
|
+
<div class="workflow-toolbar"><div><button type="button" class="icon-button" aria-label="Select">↖</button><button type="button" class="icon-button" aria-label="Pan">✥</button><button type="button" class="icon-button" aria-label="Add">+</button></div><div><button type="button" class="icon-button" aria-label="Undo">↶</button><button type="button" class="icon-button" aria-label="Redo">↷</button></div></div>
|
|
189
|
+
<!-- biome-ignore lint/a11y/noNoninteractiveTabindex: focusable canvas landmark -->
|
|
190
|
+
<section class="canvas" aria-label="Workflow canvas" tabindex="0">
|
|
191
|
+
<svg class="edges" viewBox="0 0 1100 620" preserveAspectRatio="none" aria-hidden="true"><path d="M210 130 C310 130 290 250 390 250"/><path d="M570 250 C670 250 650 150 750 150"/><path d="M570 250 C670 250 650 390 750 390"/><path class="signal-edge" d="M930 150 C980 150 970 270 925 270"/><path d="M930 390 C980 390 970 270 925 270"/></svg>
|
|
192
|
+
<article class="canvas-node trigger-node" style="--inline: 4%; --block: 12%;"><header><span class="node-symbol trigger-symbol">↯</span><span data-i18n="workflow.kind.trigger">TRIGGER</span><button type="button">•••</button></header><strong data-i18n="workflow.trigger">Incoming request</strong><small><bdi dir="ltr">POST /agent/run</bdi></small><i class="port output-port"></i></article>
|
|
193
|
+
<article class="canvas-node agent-node selected" style="--inline: 35%; --block: 31%;"><header><span class="node-symbol agent-symbol">N</span><span data-i18n="workflow.kind.agent">AGENT</span><button type="button">•••</button></header><strong data-i18n="workflow.agent">Planning agent</strong><small><bdi dir="ltr">gpt-5.6 / balanced</bdi></small><i class="port input-port"></i><i class="port output-port"></i></article>
|
|
194
|
+
<article class="canvas-node condition-node" style="--inline: 67%; --block: 14%;"><header><span class="node-symbol condition-symbol">◇</span><span data-i18n="workflow.kind.condition">CONDITION</span><button type="button">•••</button></header><strong data-i18n="workflow.condition">Risk detected?</strong><small data-i18n="workflow.condition.rule"><bdi dir="ltr">severity ≥ medium</bdi></small><i class="port input-port"></i><i class="port output-port"></i></article>
|
|
195
|
+
<article class="canvas-node tool-node" style="--inline: 67%; --block: 57%;"><header><span class="node-symbol tool-symbol">⌁</span><span data-i18n="workflow.kind.tool">TOOL</span><button type="button">•••</button></header><strong data-i18n="workflow.tool">Health tool</strong><small><bdi dir="ltr">mcp://observability</bdi></small><i class="port input-port"></i><i class="port output-port"></i></article>
|
|
196
|
+
<article class="canvas-node output-node" style="--inline: 84%; --block: 36%;"><header><span class="node-symbol output-symbol">▱</span><span data-i18n="workflow.kind.output">OUTPUT</span><button type="button">•••</button></header><strong data-i18n="workflow.output">Decision brief</strong><small data-i18n="workflow.output.format">Artifact / Markdown</small><i class="port input-port"></i></article>
|
|
197
|
+
<div class="canvas-controls"><button type="button">+</button><span>83%</span><button type="button">−</button><button type="button">⌖</button></div>
|
|
198
|
+
</section>
|
|
199
|
+
</div>
|
|
200
|
+
<aside class="workflow-inspector"><header><div><p class="eyebrow" data-i18n="inspector.selectedNode">SELECTED NODE</p><h2 data-i18n="inspector.title">Inspector</h2></div><button type="button" class="icon-button" aria-label="Close">×</button></header><div class="inspector-section"><label><span data-i18n="inspector.name">Name</span><input value="Planning agent" dir="auto" /></label><label><span data-i18n="inspector.model">Model</span><select><option>gpt-5.6</option></select></label><label><span data-i18n="inspector.reasoning">Reasoning</span><select><option data-i18n="inspector.balanced">Balanced</option></select></label></div><div class="inspector-section"><h3 data-i18n="inspector.permissions">Permissions</h3><label class="switch-row"><span><strong data-i18n="inspector.readTelemetry">Read telemetry</strong><small data-i18n="inspector.readTelemetry.desc">Access service metrics and traces</small></span><input type="checkbox" checked /></label><label class="switch-row"><span><strong data-i18n="inspector.publishArtifact">Publish artifact</strong><small data-i18n="inspector.publishArtifact.desc">Requires approval at runtime</small></span><input type="checkbox" checked /></label></div><div class="inspector-section"><label><span data-i18n="inspector.timeout">Timeout</span><div class="input-with-unit"><input value="120" inputmode="numeric" dir="ltr" /><span>s</span></div></label><label><span data-i18n="inspector.failurePath">Failure path</span><select><option data-i18n="inspector.routeHuman">Route to human review</option></select></label></div><footer><button type="button" class="quiet-button destructive" data-i18n="inspector.deleteNode">Delete node</button></footer></aside>
|
|
201
|
+
</section>
|
|
202
|
+
</main>
|
|
203
|
+
<footer class="site-footer"><span data-i18n="footer.note">One system. Built deliberately.</span><span><bdi dir="ltr">NOE / DS-001</bdi></span></footer>
|
|
204
|
+
</body>
|
|
205
|
+
</html>
|