noecosystem-design 0.1.0 → 0.1.2
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/AGENTS.md +12 -0
- package/README.md +78 -35
- package/apps/showcase/src/catalog/__screenshots__/catalog-shell.browser.test.tsx/filters-the-component-inventory-and-exposes-the-selected-audit-state-1.png +0 -0
- package/apps/showcase/src/catalog/__screenshots__/catalog-shell.browser.test.tsx/opens-a-component-detail-view-and-returns-to-the-grid-1.png +0 -0
- package/apps/showcase/src/catalog/__screenshots__/catalog-shell.browser.test.tsx/switching-locale-to-Persian-updates-document-direction-to-rtl-1.png +0 -0
- package/docs/design-system/README.md +3 -2
- package/docs/design-system/agent-guide.md +49 -9
- package/docs/design-system/architecture.md +6 -0
- package/docs/design-system/gpt-agent-prompt.md +56 -0
- package/docs/design-system/registry.md +4 -0
- package/llms.txt +47 -20
- package/package.json +79 -1
- package/packages/registry/README.md +3 -0
- package/packages/ui/src/__screenshots__/button.browser.test.tsx/Button-preserves-native--busy--disabled--and-ref-contracts-1.png +0 -0
- package/packages/ui/src/__screenshots__/button.browser.test.tsx/a-disabled-polymorphic-Button-cannot-navigate-or-receive-focus-1.png +0 -0
- package/packages/ui/src/__screenshots__/date-picker.browser.test.tsx/DatePicker-Escape-closes-popover-and-returns-focus-to-input-1.png +0 -0
- package/packages/ui/src/__screenshots__/date-picker.browser.test.tsx/DatePicker-click-outside-closes-popover-1.png +0 -0
- package/packages/ui/src/__screenshots__/dialog.browser.test.tsx/Dialog-propagates-RTL-into-the-portal-and-traps-then-restores-focus-1.png +0 -0
- package/.editorconfig +0 -12
- package/.github/CODEOWNERS +0 -10
- package/.github/dependabot.yml +0 -12
- package/.github/pull_request_template.md +0 -17
- package/.github/workflows/ci.yml +0 -173
- package/.github/workflows/security.yml +0 -40
- package/.mcp.json +0 -8
- package/.node-version +0 -1
- package/CONTRIBUTING.md +0 -9
- package/SECURITY.md +0 -7
- package/artifacts/original-delivery/NOE-Design-System-Delivery/README-FIRST.txt +0 -20
- package/artifacts/original-delivery/NOE-Design-System-Delivery/SHA256SUMS.txt +0 -11
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-delivery-metadata.json +0 -25
- 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 +0 -60
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-design-system-manifest.json +0 -106
- 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 +0 -38
- package/artifacts/original-delivery/NOE-Design-System-Delivery/noe-verification-status.txt +0 -15
- 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 +0 -13
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/browser-console.json +0 -4
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/layout-audit.json +0 -4
- 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 +0 -203
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/verification-result.json +0 -165
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/verification-result.txt +0 -32
- package/artifacts/original-delivery/noe-design-system-evidence/evidence/visual-index.html +0 -1
- package/artifacts/original-delivery/noe-design-system-evidence/noe-delivery-metadata.json +0 -25
- package/artifacts/original-delivery/noe-design-system-evidence/noe-design-system-execution-report.md +0 -60
- package/artifacts/original-delivery/noe-design-system-evidence/noe-design-system-manifest.json +0 -106
- package/artifacts/original-delivery/noe-design-system-evidence/noe-verification-status.txt +0 -15
- package/artifacts/original-delivery/noe-design-system.bundle +0 -0
- package/artifacts/original-delivery/source-evidence/verification-result.json +0 -165
- package/artifacts/original-delivery/source-evidence/verification-result.txt +0 -32
- package/artifacts/registry-consumer-report.json +0 -153
- 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/docs/superpowers/plans/2026-08-25-noe-design-system-development-ready.md +0 -833
- package/docs/superpowers/plans/2026-08-26-noe-complete-catalog.md +0 -422
- package/docs/superpowers/specs/2026-08-25-noe-design-system-development-ready-design.md +0 -260
- package/docs/superpowers/specs/2026-08-26-noe-complete-catalog-design.md +0 -187
- package/packages/registry/package.json +0 -10
- package/packages/registry/r-planned-backup/about-page.json +0 -14
- package/packages/registry/r-planned-backup/activity-gauge.json +0 -14
- package/packages/registry/r-planned-backup/avatar.json +0 -14
- package/packages/registry/r-planned-backup/badge-group.json +0 -14
- package/packages/registry/r-planned-backup/banner.json +0 -14
- package/packages/registry/r-planned-backup/blog-index-page.json +0 -14
- package/packages/registry/r-planned-backup/blog-post-page.json +0 -14
- package/packages/registry/r-planned-backup/blog-section.json +0 -14
- package/packages/registry/r-planned-backup/button-group.json +0 -14
- package/packages/registry/r-planned-backup/careers-section.json +0 -14
- package/packages/registry/r-planned-backup/carousel.json +0 -14
- package/packages/registry/r-planned-backup/checkbox.json +0 -14
- package/packages/registry/r-planned-backup/color-picker.json +0 -14
- package/packages/registry/r-planned-backup/command-menu.json +0 -14
- package/packages/registry/r-planned-backup/contact-page.json +0 -14
- package/packages/registry/r-planned-backup/contact-section.json +0 -14
- package/packages/registry/r-planned-backup/content-divider.json +0 -14
- package/packages/registry/r-planned-backup/content-section.json +0 -14
- package/packages/registry/r-planned-backup/credit-card.json +0 -14
- package/packages/registry/r-planned-backup/cta-section.json +0 -14
- package/packages/registry/r-planned-backup/email-template.json +0 -14
- package/packages/registry/r-planned-backup/faq-page.json +0 -14
- package/packages/registry/r-planned-backup/faq-section.json +0 -14
- package/packages/registry/r-planned-backup/feature-section.json +0 -14
- package/packages/registry/r-planned-backup/file-uploader.json +0 -14
- package/packages/registry/r-planned-backup/footer.json +0 -14
- package/packages/registry/r-planned-backup/forgot-password-page.json +0 -14
- package/packages/registry/r-planned-backup/illustration.json +0 -14
- package/packages/registry/r-planned-backup/informational-page-01.json +0 -14
- package/packages/registry/r-planned-backup/informational-page-02.json +0 -14
- package/packages/registry/r-planned-backup/legal-page.json +0 -14
- package/packages/registry/r-planned-backup/marketing-404-page.json +0 -14
- package/packages/registry/r-planned-backup/metrics-section.json +0 -14
- package/packages/registry/r-planned-backup/multi-select.json +0 -14
- package/packages/registry/r-planned-backup/newsletter.json +0 -14
- package/packages/registry/r-planned-backup/notification.json +0 -14
- package/packages/registry/r-planned-backup/pie-chart.json +0 -14
- package/packages/registry/r-planned-backup/pricing-page.json +0 -14
- package/packages/registry/r-planned-backup/pricing-section.json +0 -14
- package/packages/registry/r-planned-backup/progress-indicator.json +0 -14
- package/packages/registry/r-planned-backup/qr-code.json +0 -14
- package/packages/registry/r-planned-backup/radar-chart.json +0 -14
- package/packages/registry/r-planned-backup/radio-group.json +0 -14
- package/packages/registry/r-planned-backup/rating.json +0 -14
- package/packages/registry/r-planned-backup/rich-text-editor.json +0 -14
- package/packages/registry/r-planned-backup/section-footer.json +0 -14
- package/packages/registry/r-planned-backup/select.json +0 -14
- package/packages/registry/r-planned-backup/sign-up-page.json +0 -14
- package/packages/registry/r-planned-backup/slider.json +0 -14
- package/packages/registry/r-planned-backup/social-button.json +0 -14
- package/packages/registry/r-planned-backup/social-proof.json +0 -14
- package/packages/registry/r-planned-backup/store-button.json +0 -14
- package/packages/registry/r-planned-backup/tags.json +0 -14
- package/packages/registry/r-planned-backup/team-page.json +0 -14
- package/packages/registry/r-planned-backup/team-section.json +0 -14
- package/packages/registry/r-planned-backup/testimonial-section.json +0 -14
- package/packages/registry/r-planned-backup/toggle.json +0 -14
- package/packages/registry/r-planned-backup/tree-view.json +0 -14
- package/packages/registry/r-planned-backup/verification-code.json +0 -14
- package/packages/registry/r-planned-backup/verification-page.json +0 -14
- package/packages/registry/r-planned-backup/video-player.json +0 -14
- package/registry.json +0 -216
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
# Complete NOE Design Catalog and Coss/Base UI Adoption
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-08-26
|
|
4
|
-
**Status:** Draft for user review
|
|
5
|
-
**Scope root:** `/Users/ali/Documents/NoEcosystem/design-system`
|
|
6
|
-
|
|
7
|
-
## Objective
|
|
8
|
-
|
|
9
|
-
Make every public NOE design component inspectable in one running catalog. The
|
|
10
|
-
catalog is both the product team's visual audit surface and the source of
|
|
11
|
-
executable component documentation. It must be complete by contract: no public
|
|
12
|
-
component may be shipped without an entry, states to inspect, locale/direction
|
|
13
|
-
coverage, accessibility evidence, and registry metadata where it is
|
|
14
|
-
installable.
|
|
15
|
-
|
|
16
|
-
The user-supplied Coss, Base UI, dark component-grid, and responsive dashboard
|
|
17
|
-
examples are visual and architectural reference material. They do not grant a
|
|
18
|
-
license to copy their source or visual assets, and they do not override the NOE
|
|
19
|
-
token, accessibility, direction, or ownership contracts.
|
|
20
|
-
|
|
21
|
-
## Definition of Complete
|
|
22
|
-
|
|
23
|
-
"Complete" means the catalog reflects the complete public NOE component
|
|
24
|
-
surface, not that it silently presents planned external components as finished.
|
|
25
|
-
|
|
26
|
-
For every exported NOE component or documented composition, the catalog must
|
|
27
|
-
provide:
|
|
28
|
-
|
|
29
|
-
- a discoverable entry and category;
|
|
30
|
-
- a live preview using the public package export;
|
|
31
|
-
- a concise purpose and do/don't guidance;
|
|
32
|
-
- all supported variants and meaningful interaction states;
|
|
33
|
-
- keyboard, focus, disabled, loading, error, long-content, light, dark, LTR,
|
|
34
|
-
RTL, Persian, and English audit coverage as applicable;
|
|
35
|
-
- source and registry/install metadata where the component is distributable;
|
|
36
|
-
- an explicit maturity state: `available`, `in-progress`, or `planned`.
|
|
37
|
-
|
|
38
|
-
`available` requires executable evidence. The catalog must never visually
|
|
39
|
-
imply that a planned item has been implemented.
|
|
40
|
-
|
|
41
|
-
## Information Architecture
|
|
42
|
-
|
|
43
|
-
The canonical audit experience is a React Storybook application, supplemented
|
|
44
|
-
by a curated NOE Catalog landing page.
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
Catalog landing
|
|
48
|
-
Foundations
|
|
49
|
-
Typography, colour roles, spacing, elevation, motion, icons, bidi
|
|
50
|
-
Primitives
|
|
51
|
-
Controls, inputs, feedback, overlays, navigation, layout
|
|
52
|
-
Patterns
|
|
53
|
-
Data, agent, approval, artifact, workflow compositions
|
|
54
|
-
Product surfaces
|
|
55
|
-
Consumer, dashboard, agent workspace, workflow builder
|
|
56
|
-
Audit
|
|
57
|
-
Component matrix, accessibility, direction, locale, responsive evidence
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
The landing page uses a dense, quiet component grid inspired by the supplied
|
|
61
|
-
references: clear labels, real previews, restrained borders, deliberate empty
|
|
62
|
-
space, and no decorative treatment outside existing NOE tokens. The dashboard
|
|
63
|
-
surface demonstrates the same components in responsive product context. It is
|
|
64
|
-
not a copy of any reference site.
|
|
65
|
-
|
|
66
|
-
Global controls switch theme, locale, direction, density, and viewport preview.
|
|
67
|
-
Controls apply before first paint where document `lang` and `dir` are involved.
|
|
68
|
-
Links permit a reviewer to enter any component or state directly.
|
|
69
|
-
|
|
70
|
-
## Typography Contract
|
|
71
|
-
|
|
72
|
-
Typography is a semantic token contract, not a per-story convention.
|
|
73
|
-
|
|
74
|
-
- English and other Latin UI copy use `SF Pro Text`; display headings use
|
|
75
|
-
`SF Pro Display`.
|
|
76
|
-
- Persian and Arabic UI copy use the locally supplied `IRANYekanXFaNum` for
|
|
77
|
-
regular, medium, semibold, and bold weights.
|
|
78
|
-
- `html[lang="fa"]`, `html[lang="ar"]`, and nested matching language scopes
|
|
79
|
-
override the semantic sans and heading variables rather than relying on a
|
|
80
|
-
glyph fallback.
|
|
81
|
-
- Technical values keep the semantic monospace family and explicit LTR
|
|
82
|
-
isolation even inside RTL layouts.
|
|
83
|
-
|
|
84
|
-
The self-hosted IRANYekan files remain subject to the existing licensing note;
|
|
85
|
-
no proprietary SF Pro files are added to the repository. SF Pro remains a
|
|
86
|
-
system-font reference with documented platform fallbacks.
|
|
87
|
-
|
|
88
|
-
## Coss and Base UI Strategy
|
|
89
|
-
|
|
90
|
-
Base UI supplies accessible behaviour and Coss supplies verified composition
|
|
91
|
-
patterns. Neither library's default visual language may escape as a NOE product
|
|
92
|
-
API.
|
|
93
|
-
|
|
94
|
-
```text
|
|
95
|
-
Base UI behaviour
|
|
96
|
-
-> selected, locally owned Coss-derived compositions
|
|
97
|
-
-> NOE semantic-token styling and bidi contracts
|
|
98
|
-
-> @noe public packages and registry
|
|
99
|
-
-> catalog and product consumers
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Each Coss primitive is tracked in a machine-readable adoption matrix with one
|
|
103
|
-
of these outcomes:
|
|
104
|
-
|
|
105
|
-
- `adopted`: implemented as a NOE-owned public component and fully auditable;
|
|
106
|
-
- `compose-only`: used internally by an NOE pattern, not exposed as a second
|
|
107
|
-
public primitive;
|
|
108
|
-
- `deferred`: intentionally not yet in the NOE public surface, with rationale;
|
|
109
|
-
- `blocked`: needs an explicit dependency, API, or design decision.
|
|
110
|
-
|
|
111
|
-
Coss particles inform NOE patterns such as authentication, command surfaces,
|
|
112
|
-
forms, tables, and settings. They are adapted only when they add a real product
|
|
113
|
-
contract; the catalog does not bulk-copy the external particle library.
|
|
114
|
-
|
|
115
|
-
No Coss or Base UI API is guessed. Version compatibility, installation source,
|
|
116
|
-
licenses, accessibility behaviour, portal direction, and controlled state are
|
|
117
|
-
verified before each adoption.
|
|
118
|
-
|
|
119
|
-
## Package and Catalog Boundaries
|
|
120
|
-
|
|
121
|
-
- `@noe/design-tokens` owns the semantic font, colour, spacing, motion, and
|
|
122
|
-
theme decisions.
|
|
123
|
-
- `@noe/i18n` owns locales, messages, direction, formatting, and pseudo-locales.
|
|
124
|
-
- `@noe/ui` owns direction-safe primitives and the Base UI/Coss adapters.
|
|
125
|
-
- `@noe/data-ui`, `@noe/ai-ui`, and `@noe/workflow-ui` own NOE pattern-level
|
|
126
|
-
compositions.
|
|
127
|
-
- `@noe/registry` owns installable component metadata and adoption/maturity
|
|
128
|
-
information.
|
|
129
|
-
- `apps/storybook` owns the executable documentation and audit controls.
|
|
130
|
-
- `apps/showcase` owns curated product and catalog entry surfaces; it does not
|
|
131
|
-
duplicate Storybook's component implementation.
|
|
132
|
-
|
|
133
|
-
The registry becomes the inventory source. Automated checks compare public
|
|
134
|
-
exports, registry entries, story coverage, and the audit matrix, failing if an
|
|
135
|
-
available component is absent from any required surface.
|
|
136
|
-
|
|
137
|
-
## Interaction, Accessibility, and Direction
|
|
138
|
-
|
|
139
|
-
Interactive primitives use verified Base UI/Coss hierarchy and composition
|
|
140
|
-
rules, especially for dialogs, menus, selects, popovers, drawers, forms, and
|
|
141
|
-
toasts. Every portalled UI receives explicit direction. Components retain
|
|
142
|
-
logical CSS and do not solve RTL with global reversal or global icon mirroring.
|
|
143
|
-
|
|
144
|
-
The catalog exposes keyboard instructions and accessibility state rather than
|
|
145
|
-
requiring a reviewer to infer them from source. Overlay, focus, label,
|
|
146
|
-
description, error, disabled, and destructive-action behaviour are interaction
|
|
147
|
-
tests, not visual claims.
|
|
148
|
-
|
|
149
|
-
## Verification and Evidence
|
|
150
|
-
|
|
151
|
-
The implementation adds a coverage contract that reports all public components
|
|
152
|
-
and their documentation/audit status. Completion evidence includes:
|
|
153
|
-
|
|
154
|
-
- token tests proving the explicit English and Persian font contracts;
|
|
155
|
-
- component tests for relevant Base UI/Coss interaction semantics;
|
|
156
|
-
- Storybook interaction and accessibility tests for every available story;
|
|
157
|
-
- Playwright audit flows for theme, locale, direction, responsive widths, search,
|
|
158
|
-
filters, and component deep-links;
|
|
159
|
-
- deterministic visual review for selected foundations, primitives, patterns,
|
|
160
|
-
and product surfaces;
|
|
161
|
-
- registry and public-export parity checks;
|
|
162
|
-
- `pnpm check`, `pnpm test:storybook`, `pnpm test:e2e`, and repository-level
|
|
163
|
-
`make check` results.
|
|
164
|
-
|
|
165
|
-
## Non-goals
|
|
166
|
-
|
|
167
|
-
- Copying Coss, Base UI, or the supplied reference websites pixel-for-pixel.
|
|
168
|
-
- Shipping all externally available Coss particles merely because they exist.
|
|
169
|
-
- Replacing NOE tokens, i18n, or public package boundaries with external APIs.
|
|
170
|
-
- Claiming a component is implemented before its story and executable audit
|
|
171
|
-
coverage exist.
|
|
172
|
-
- Publishing, deploying, or changing production infrastructure.
|
|
173
|
-
|
|
174
|
-
## Delivery Sequence
|
|
175
|
-
|
|
176
|
-
1. Establish catalog inventory, maturity metadata, and coverage checks.
|
|
177
|
-
2. Correct the explicit language-aware typography contract with tests.
|
|
178
|
-
3. Install or normalize only the verified Base UI/Coss foundations required by
|
|
179
|
-
the adoption matrix.
|
|
180
|
-
4. Build the catalog shell, global audit controls, navigation, search, and
|
|
181
|
-
preview grid.
|
|
182
|
-
5. Add and group complete stories for every existing public NOE component.
|
|
183
|
-
6. Adopt missing primitives and patterns in dependency order, each with public
|
|
184
|
-
API, registry data, story, interaction test, and RTL coverage.
|
|
185
|
-
7. Build curated product surfaces from the same public components.
|
|
186
|
-
8. Run the full automated and visual verification matrix, report gaps honestly,
|
|
187
|
-
and retain a visible `planned` state for anything not yet available.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "about-page",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "About Page",
|
|
6
|
-
"description": "About page example from sections. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/about-page.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/about-page.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "activity-gauge",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Activity Gauge",
|
|
6
|
-
"description": "Activity gauge with arc, value and accessible table fallback, RTL-safe.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/data-ui/src/activity-gauge.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/data-ui/src/activity-gauge.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "avatar",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Avatar",
|
|
6
|
-
"description": "Image and fallback avatar with tokenized sizes and status ring, bidi-safe.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/avatar.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/avatar.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "badge-group",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Badge Group",
|
|
6
|
-
"description": "Compact group of badges with logical flex and overflow handling.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/badge-group.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/badge-group.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "banner",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Banner",
|
|
6
|
-
"description": "Banner section with dismiss and action, tokenized. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/banner.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/banner.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "blog-index-page",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Blog Index Page",
|
|
6
|
-
"description": "Blog index page from sections. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/blog-index-page.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/blog-index-page.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "blog-post-page",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Blog Post Page",
|
|
6
|
-
"description": "Blog post page from sections. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/blog-post-page.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/blog-post-page.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "blog-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Blog Section",
|
|
6
|
-
"description": "Blog section with posts grid, content-driven. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/blog-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/blog-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "button-group",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Button Group",
|
|
6
|
-
"description": "Segmented button group with shared border and focus management, RTL-safe.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/button-group.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/button-group.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "careers-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Careers Section",
|
|
6
|
-
"description": "Careers section with openings list. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/careers-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/careers-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "carousel",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Carousel",
|
|
6
|
-
"description": "Carousel with keyboard, focus and responsive, RTL logical slide direction.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/carousel.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/carousel.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "checkbox",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Checkbox",
|
|
6
|
-
"description": "Accessible checkbox with label, description, error and indeterminate states, keyboard and RTL.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/checkbox.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/checkbox.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "color-picker",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Color Picker",
|
|
6
|
-
"description": "Color picker with hue, hex input and swatches, tokenized and accessible.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/color-picker.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/color-picker.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "command-menu",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Command Menu",
|
|
6
|
-
"description": "Command palette with search, keyboard and overlay, shares foundation with Select.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/command-menu.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/command-menu.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "contact-page",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Contact Page",
|
|
6
|
-
"description": "Contact page from sections. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/contact-page.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/contact-page.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "contact-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Contact Section",
|
|
6
|
-
"description": "Contact section with form and info. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/contact-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/contact-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "content-divider",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Content Divider",
|
|
6
|
-
"description": "Content divider with optional label and logical orientation.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/content-divider.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/content-divider.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "content-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Content Section",
|
|
6
|
-
"description": "Rich text content section with prose. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/content-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/content-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "credit-card",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Credit Card",
|
|
6
|
-
"description": "Credit card display with tokenized styling and LTR-isolated numbers.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/credit-card.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/credit-card.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "cta-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "CTA Section",
|
|
6
|
-
"description": "Call to action section with actions. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/cta-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/cta-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "email-template",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Email Template",
|
|
6
|
-
"description": "Email template composition with branding and content slots. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/email-template.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/email-template.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "faq-page",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "FAQ Page",
|
|
6
|
-
"description": "FAQ page from sections. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/faq-page.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/faq-page.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "faq-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "FAQ Section",
|
|
6
|
-
"description": "FAQ section with disclosure. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/faq-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/faq-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "feature-section",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Feature Section",
|
|
6
|
-
"description": "Feature section with icons and descriptions. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/feature-section.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/feature-section.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "file-uploader",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "File Uploader",
|
|
6
|
-
"description": "File uploader with drag/drop, file list and error states, accessible.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/file-uploader.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/file-uploader.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "footer",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Footer",
|
|
6
|
-
"description": "Footer with links, brand and social, RTL. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/footer.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/footer.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "forgot-password-page",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Forgot Password Page",
|
|
6
|
-
"description": "Forgot password page with email field and submit. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/forgot-password-page.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/forgot-password-page.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "illustration",
|
|
4
|
-
"type": "registry:ui",
|
|
5
|
-
"title": "Illustration",
|
|
6
|
-
"description": "Illustration placeholder with tokenized background and aspect ratio.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/illustration.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/illustration.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "informational-page-01",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Informational Page 01",
|
|
6
|
-
"description": "Informational page example 01, composes primitives. \u2014 tokenized, accessible, RTL-safe and responsive composition.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "packages/ui/src/informational-page-01.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "packages/ui/src/informational-page-01.tsx"
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|